【发布时间】:2015-06-10 12:43:49
【问题描述】:
我正在使用 attr 为我的项目创建一个可绘制的选择器,这样一旦我更改了主题颜色,我就不必对可绘制文件进行任何更改。我正在使用以下库:
compile 'com.android.support:appcompat-v7:+'
compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:design:22.2.0'
这里是drawable的源代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?attr/colorPrimary" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawable="?attr/colorPrimaryDark" android:state_pressed="true"/>
<item android:drawable="@android:color/darker_gray" android:state_enabled="false"/>
<item android:drawable="?attr/colorPrimary"/>
</selector>
在同样的代码中,如果我用 colors.xml 文件中定义的颜色替换属性,同样的 drawable 可以工作。
带有颜色的可绘制示例:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_primary" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawable="@color/color_primary_dark" android:state_pressed="true"/>
<item android:drawable="@android:color/darker_gray" android:state_enabled="false"/>
<item android:drawable="@color/color_primary"/>
</selector>
提前致谢!
【问题讨论】:
-
drawable 如何使用颜色???你必须通过 drawable 而不是 color
-
android 自行处理该部分。请参阅第二个可绘制对象的代码。有用。问题是当你使用属性时。
-
我猜你必须使用类似this
标签: android drawable selector-drawable