Hice una imagen personalizada de 9 parches para el fondo de mi botón. Los botones están en drawable-hdpi y drawable-mdpi folder. Creé un archivo de selector personalizado para mis estados de botón.¿Por qué los estados de los botones personalizados no funcionan?
archivoselector de login_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Image display in background in select state -->
<item android:state_pressed="true" android:drawable="@drawable/login_button_down" />
<!-- Image display in background in select state -->
<item android:state_focused="true" android:drawable="@drawable/login_button_down" />
<!-- Default state -->
<item android:drawable="@drawable/login_button" />
</selector>
Entonces hice un archivo styles.xml a medida para el estilo de botón:
<style name="login_button_style" parent="@android:style/Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textColor">#FF000000</item>
<item name="android:shadowColor">#FFFFFFFF</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">0.2</item>
<item name="android:textSize">13dp</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/login_button</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
luego se aplica este estilo a mi archivo de tema en themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="customTheme" parent="@android:style/Theme.NoTitleBar" >
<item name="android:editTextStyle">@style/login_edittext_style</item>
<item name="android:buttonStyle">@style/login_button_style</item>
<item name="android:textViewStyle">@style/login_textview_style</item>
</style>
</resources>
Y, por último añadido propio botón para el archivo de diseño:
<Button
android:text="@string/login_text"
android:id="@+id/buttonSignIn"
android:layout_width="130dp"
android:layout_height="wrap_content">
</Button>
Pero si hago clic en el botón, la imagen de fondo no cambia. El código está bien y todo compila muy bien. Sé que tengo la misma imagen para dos estados diferentes, pero no funciona ni siquiera para un estado en emulador. ¿Alguien puede señalarme dónde está el problema?
EDIT:
estado Obviamente normal se trabaja, ya que recibe su imagen desde un archivo XML de selección. Ahora me pregunto por qué los otros estados no son ...
Si coloca el '' login_button' como androide: o de fondo Cómo funciona? – Macarse
@Macarse No. Agregado al botón android: background = "@ drawable/login_button", incluso trató de comentar el estilo del botón en themes.xml - resultado 0. – evilone
¿Es este un estilo o un tema? ¿Y cómo lo aplica a su botón o actividad? –