Estoy tratando de hacer un botón con un selector, mi botón puede tener los siguientes estados:
- Habilitado Deshabilitado
- Presionado / No presionado
Según los estados mencionados anteriormente. Necesito manipular el botón:
- Color de texto
- imagen de fondo
El botón comienza a estar deshabilitado, por lo que debería tener el color de texto deshabilitado y el fondo del botón deshabilitado. ¡Pero puedo ver el color de texto predeterminado (especificado en el estilo) y SIN imagen de fondo!
Aquí está mi selector button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed"/>
<item android:state_pressed="true"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button"/>
<item android:state_pressed="false"
android:state_enabled="true"
android:drawable="@drawable/button"/>
</selector>
Y aquí está mi declaración de botón en my layout.xml
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
Y finalmente este es mi estilo (donde se establece mi color de texto predeterminado)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="android:textStyle">bold</item>
<item name="android:textColor">#282780</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
¡Por favor ayuda!
@color
en buttyStyle. Ahora está actualizado.text_color.xml
no se compila (para mí, al menos) a menos que lo coloque en ladrawable
carpeta, que requiere referirse a él como@drawable/text_color
color
es la carpeta correcta para el recurso de lista de estado de color. Su edición es bienvenida.1.Cree una carpeta de color en la carpeta / res / y en la carpeta de color cree en xml:
text_color_selector.xml
2.Ahora crea un diseño xml: -
fuente
La solución más fácil es configurar el filtro de color en la imagen de fondo y el botón como vi aquí
Puedes hacer lo siguiente:
Espero haber ayudado a alguien ...
fuente
No puedo ver la marcación de su botón en su diseño xml. agregue esto al diseño de su botón.
por lo que el diseño de su botón será,
fuente
Puedes crear una lista de colores
ubicación del archivo:
El nombre de archivo se utilizará como ID de recurso.
referencia de recurso:
En Java:
R.color.filename
En XML:
@[package:]color/filename
sintaxis:
Ejemplo:
Archivo XML guardado en
res/color/button_text.xml
:Este XML de diseño aplicará la lista de colores a una vista:
Consulte: Referencia de lista de colores
fuente