domingo, 29 de julio de 2012

Personalizar esquinas en la vistas

En algunos diseños podemos tener la necesidad de usar un background con su marco definido. Para generar la línia que define el marco podemos usar el siguiente código (los xml generados se tienen que crear en nuestro directorio /res/drawable):

Rectangle.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="1dip" />
    <stroke
        android:width="1sp"
        android:color="#000000" />
    <solid android:color="#FFFFFF" />
    <padding
        android:bottom="3dip"
        android:left="3dip"
        android:right="3dip"
        android:top="3dip" />
</shape>        

Rounded.xml      
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="10dip" />
    <stroke
        android:width="1sp"
        android:color="#000000" />
    <solid android:color="#FFFFFF" />
    <padding
        android:bottom="3dip"
        android:left="3dip"
        android:right="3dip"
        android:top="3dip" />
</shape>                  


El código anterior lo podemos añadir a nuestras vistas, como se hace en el ejemplo siguiente (notad que se añade en los TextView, pero eso es aplicable a todo lo que se una vista):


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/corners_rectangle"
        android:padding="@dimen/padding_medium"
        android:text="Rectangle"
        tools:context=".CornerActivity" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dip"
        android:background="@drawable/corners_rounded"
        android:padding="@dimen/padding_medium"
        android:text="Rounded"
        tools:context=".CornerActivity" />
</LinearLayout>

La siguiente imagen nos muestra cómo queda nuestra vista:


It works!

Roger Sala,

No hay comentarios:

Publicar un comentario