Este es un selector de botón tal que cuando es normal aparece rojo, cuando se presiona aparece gris.
Me gustaría preguntar cómo podría modificarse más directamente el código de modo que cuando SE PRESIONE, el tamaño y el color del texto también puedan cambiar. ¡Muchas gracias!
<item android:state_pressed="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="@color/grey"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="#FF6699"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
No puede lograr un cambio de tamaño de texto con una lista de estado dibujable . Para cambiar el color y el tamaño del texto, haga lo siguiente:
Color de texto
Para cambiar el color del texto, puede crear un recurso de lista de estado de color . Será un recurso separado ubicado en el
res/color/
directorio. En el diseño xml, debe establecerlo como valor para elandroid:textColor
atributo. El selector de color contendrá algo como esto:Tamano del texto
No puede cambiar el tamaño del texto simplemente con recursos. No hay "selector de dimensiones". Tienes que hacerlo en código. Y no existe una solución sencilla.
Probablemente, la solución más fácil podría ser utilizar
View.onTouchListener()
y manejar los eventos de subida y bajada en consecuencia. Usa algo como esto:Una solución diferente podría ser ampliar la vista y anular la
setPressed(Boolean)
método. El método se llama internamente cuando ocurre el cambio del estado presionado. Luego, cambie el tamaño del texto en consecuencia en la llamada al método (no olvide llamar al super).fuente
Cree custom_selector.xml en la carpeta dibujable
Crear forma selected.xml en carpeta dibujable
Cree una forma .xml no seleccionada en una carpeta dibujable
Agregue los siguientes colores para el estado seleccionado / no seleccionado en color.xml de la carpeta de valores
puedes consultar la solución completa desde aquí
fuente
La mejor manera de implementar el selector es usando el xml en lugar de usar la forma programática, ya que es más fácil de implementar con xml.
Para obtener más información, implementé usando este enlace http://www.blazin.in/2016/03/how-to-use-selectors-for-botton.html
fuente
En el archivo Layout .xml
btn_selector.xml
fuente
Puedes usar este código:
(Archivo selector) img_sublist_carat_selector.xml:
fuente