是否可以在<style>元素中设置背景图像?</style>

时间:2011-10-25 03:44:11

标签: 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 个答案:

答案 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