Hola a tod@s!!
Después de casi un año sin ordenador para poder trastear por fin tengo uno para poder seguir :D
Imaginaros que el cliente, o vosotros mismo queréis tener unos botones propios en la app, no los típicos que aparecen por defecto, pues estáis de suerte!!
El botón quedará de esta manera (sin pulsar será verde y al pulsar será blanco):
Si queréis saber más...seguir leyendo!!
En la actividad que queramos que salga el botón añadiremos: (En mi caso main.xml):
<Button android:id="@+id/btnUpdateApp" style="@style/changeSettingsButtonGreenWhite"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="15dp"
android:linksClickable="true"
android:text="@string/textButton" />
En el fichero styles.xml añadiremos el estilo "changeSettingsButtonGreenWhite",
con esto conseguimos que el botón tenga un drawable personalizado para el texto y otro para el fondo:
<style name="changeSettingsButtonGreenWhite">
<item name="android:textColor">@drawable/rounded_button_color_text</item>
<item name="android:textSize">25sp</item>
<item name="android:textStyle">bold</item>
<item name="android:gravity">center</item>
<item name="android:background">@drawable/rounded_button</item>
</style>
Luego en la carpeta drawable añadiremos 4 ficheros, el primero lo llamaremos "rounded_button_color_text", este sirve para cambiar el color del texto en función si se ha pulsado o no.El segundo fichero lo llamaremos "rounded_button", este cambiará el fondo del botón en función si está pulsado o no. Como veis, hay que hacer dos botones dependiendo de la acción que se está realizando.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:color="#FFFFFF"/>
<item
android:state_focused="true"
android:state_pressed="true"
android:color="#414343"/>
<item
android:state_focused="false"
android:state_pressed="true"
android:color="#414343"/>
<item
android:state_enabled="false"
android:color="#414343"/>
<item android:color="#FFFFFF" />
</selector>
El tercer fichero se llamará "button_white", genera el fondo del botón cuando se pulsa sobre él.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="10dp" />
<stroke
android:width="5dp"
android:color="#414343"/>
<solid android:color="#FFFFFF"/>
<padding
android:left="10dp"
android:right="10dp"
android:top="10dp"
android:bottom="10dp"/>
</shape>
Y el último fichero se llamará "button_green", genera el fondo del botón cuando no se pulsa sobre él.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="10dp" />
<stroke
android:width="1dp"
android:color="#96045A"/>
<gradient
android:type="linear"
android:angle="-90"
android:endColor="#1c9800"
android:startColor="#2a623d" />
<padding
android:left="20dp"
android:right="20dp"
android:top="4dp"
android:bottom="4dp"/>
</shape>
No hay comentarios:
Publicar un comentario