#android
#Android
Вопрос:
У меня есть стиль кнопки, определенный следующим образом:
<style name="button_style">
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/button_on_red</item>
</style>
Мне интересно, могу ли я настроить фоновое изображение внутри этого, например:
<style name="button_style">
<item name="android:background_when_pressed">@drawable/button_off_red</item>
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/button_on_red</item>
</style>
Спасибо.
Ответ №1:
Вы захотите использовать то, что называется «выводом списка состояний». Вы бы создали чертеж в виде XML-файла, подобного этому:
button_states.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
Для каждого состояния вы указываете, какой объект рисования использовать на кнопке. Затем вы используете этот XML-файл в качестве фона для своей кнопки следующим образом:
<style name="button_style">
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/button_states</item>
</style>
Для получения более подробной информации ознакомьтесь с этой документацией.