复合drawable的Android状态列表

时间:2013-08-25 14:04:24

标签: android list user-interface drawable state

是否可以在Android中定义复合drawable的状态列表?

这是布局xml中的按钮:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableTop="@drawable/btn_top"
    android:text="@string/button_text" />

这是我的drawable xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:drawable="@drawable/btn_top_disabled" />
</selector>

这适用于背景,但它不适用于drawableTop。始终显示第一个状态。这在Android中是否可行?如果是这样,我错过了什么?

2 个答案:

答案 0 :(得分:0)

查看广告TextView.java源代码,您将看到是,您可以使用StateListDrawable作为根据TextView状态显示的复合Drawable

答案 1 :(得分:0)

尝试:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:state_activated="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:drawable="@drawable/btn_top_disabled" />
</selector>

button.setActivated(true);