Я сделал собственные 9-патч-изображения для фона моей кнопки. Кнопки находятся в папках drawable-hdpi и drawable-mdpi. Я создал пользовательский файл селектора для своих состояний кнопок.
файл селектора 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>
Затем я создал собственный файл styles.xml для стиля кнопки:
<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>
Затем применил этот стиль к моему файлу темы в 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>
И, наконец, добавил саму кнопку в файл макета:
<Button
android:text="@string/login_text"
android:id="@+id/buttonSignIn"
android:layout_width="130dp"
android:layout_height="wrap_content">
</Button>
Но если я нажму кнопку, фоновое изображение не изменится. Код в порядке и все хорошо компилируется. Я знаю, что у меня одно и то же изображение для двух разных состояний, но оно не работает даже для одного состояния в эмуляторе. Кто-нибудь может указать мне, где проблема?
EDIT:
Очевидно, что нормальное состояние работает, потому что оно получает свое изображение из XML-файла селектора. Теперь мне интересно, почему другие государства не ...