我有一个像这样定义的按钮样式:
<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>
感谢。
答案 0 :(得分:2)
你会想要使用所谓的“statelist drawable”。您可以将drawable创建为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>
对于每个州,您可以指定要在按钮上使用哪个drawable。然后使用此xml作为按钮的背景,如下所示:
<style name="button_style">
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/button_states</item>
</style>
有关详情,请查看此documentation。