Así que quería tener un TextView con un borde fresco alrededor. No pude encontrar ninguna manera estándar de hacer, así que se le ocurrió esto:¿Existe alguna manera más simple/mejor de poner un borde/contorno alrededor de mi TextView?
@ estirable/custom_bg_1: Una forma redondeada azul
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#439CC8"/>
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
@ estirable/custom_bg_2: Una forma redondeada blanca
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
myactivity.xml: el xml para la actividad
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="15dp" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="2dp"
android:background="@drawable/custom_bg_1" >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/curr_loc"
android:textSize="15sp"
android:background="@drawable/custom_bg_2" />
</LinearLayout>
</Linearlayout>
el resultado:
Lo que estoy haciendo aquí una superposición de un fondo en forma de blanco dentro de una forma de fondo azul para dar el efecto de un borde azul. No me puedo imaginar que esta es la mejor manera de obtener este efecto. He visto otras publicaciones que intentan resolver este problema, como this y this, pero creo que son tan útiles como mi implementación.
¿Hay alguna manera mejor o más estándar de simplemente poner un borde alrededor de ciertas vistas como un TextView o debería seguir con la forma en que lo estoy haciendo?
EDITAR
me cambió custom_bg_2.xml a tener este aspecto:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="2dp" android:color="#000000"/>
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
Y ahora me sale este resultado:
Parece Puedo lograr un esquema por incluir ing <stroke ... />
en forma.
¡Oh, qué bien!Eso parece ser exactamente lo que estaba buscando. Se debe tener en cuenta que cuando solo se ponen y no , la carrera rellena la forma, pero cuando se utilizan ambos, se obtiene el resultado deseado. –
jbranchaud