在drawable选择器中使用位图src的属性

时间:2016-05-25 16:47:32

标签: android

我正在尝试为我的应用创建自定义主题,因此,希望选择器根据当前主题选择正确的drawable。不幸的是,看起来根本没有任何图像被拾取。

这是我的选择器:

master-XXX

我的属性在attrs.xml中定义:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <bitmap android:src="?attr/test_a"
            android:gravity="center" />
    </item>
    <item android:state_focused="true">
        <bitmap android:src="?attr/test_a"
            android:gravity="center" />
    </item>
    <item android:state_activated="true">
        <bitmap android:src="?attr/test_a"
            android:gravity="center" />
    </item>
    <item>
        <bitmap android:src="?attr/test_b"
            android:gravity="center" />
    </item>
</selector>

我的主题如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="test_a" format="reference"/>
    <attr name="test_b" format="reference"/>
</resources>

主题根据需要应用于清单中。我已经看到了一些关于SO的问题,说有一个问题Pre-Lolipop,但是,我正在测试Marshmellow。

1 个答案:

答案 0 :(得分:0)

仍然不确定为什么会发生这种情况,但如果这对某人有用,作为解决方法,我会做以下事情:

1)创建了两个选择器 - 一个用于暗主题,直接指向深色drawable,一个用于浅色主题

2)创建了一个带有类型引用的属性

3)修改主题以在选择器而不是可绘制

中使用该属性点