Cambiar los colores a los componentes

Android_Style

Una de las maneras que encontramos para cambiar el estilo de un componente en particular, es utilizando “selector”.

Tomaremos como ejemplo un “button” que se encuentra en un Layout.

     <Button
            android:id="@+id/TryIt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/try_it_button"
            />

Posteriormente, creamos en la carpeta “drawable” un archivo “Drawable resource file” que se llame “my_button”. En el archivo XML vamos a pegar el siguiente XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item >
        <shape android:shape="rectangle"  >
            <stroke android:width="1dip" android:color="#ffa6d9b5" />
            <solid android:color="#ff76a9b5" />
        </shape>
    </item>
    <item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <stroke android:width="1dip" android:color="#ff76a9b5" />
            <solid android:color="#ffa6d9b5" />
        </shape>
    </item>
</selector>

Básicamente en el primer elemento “item” estamos colocando el color del estado normal del “button” y el segundo elemento estamos colocando el estilo del “button” cuando lo presionan.

Por último, agregamos a nuestro componente la referencia a nuestro “selector”.

     <Button
            android:id="@+id/TryIt"
            ...
            android:background="@drawable/my_button"
            />

Para obtener más información favor de referirse a la página de Android

Analista/Desarrollador y cofundador de QBit Mexhico. Tecnologías utilizadas Android, Java (EJB, Servlets, Faces, Groovy & Grails, Maven, Swing), .Net (C#, VB, ASP, MVC), Delphi, Spring, Hibernate, DTSx, Oracle, T-SQL, Firebird, MySQL, MongoDB, NodeJs, ReactJs (Flux). Sistemas Operativos Mac, Ubuntu y Windows.

Twitter LinkedIn 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *