无法在自定义颜色选择器中使用标准android颜色属性

无法在自定义颜色选择器中使用标准android颜色属性,android,android-theme,Android,Android Theme,因此,android在themes.xml中定义了以下内容: <style name="Theme"> ... <item name="colorPressedHighlight">@color/legacy_pressed_highlight</item> </style> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http:

因此,android在
themes.xml
中定义了以下内容:

<style name="Theme">
    ...
    <item name="colorPressedHighlight">@color/legacy_pressed_highlight</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:state_pressed="true"
        android:drawable="?android:colorPressedHighlight"/>
    <item android:drawable="@android:color/transparent" />
</selector>
最后,我定义了我的自定义
ImageButton
样式:

<style name="App_ImageButtonStyle" parent="@android:style/Widget.ImageButton">
    <item name="android:gravity">center</item>
    <item name="android:background">@color/app_button_background</item>
</style>

居中
@颜色/应用程序按钮背景
我在应用程序启动时崩溃,调用堆栈如下:

06-27 20:24:41.954: E/AndroidRuntime(532): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: <item> tag requires a 'drawable' attribute or child tag defining a drawable
06-27 20:24:41.954: E/AndroidRuntime(532):  at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:178)
06-27 20:24:41.954: E/AndroidRuntime(532):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:867)
06-27 20:24:41.954: E/AndroidRuntime(532):  at android.graphics.drawable.Drawable.createFromXml(Drawable.java:804)
06-27 20:24:41.954: E/AndroidRuntime(532):  at android.content.res.Resources.loadDrawable(Resources.java:1920)
06-27 20:24:41.954:E/AndroidRuntime(532):由以下原因引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#6:tag需要一个“drawable”属性或定义drawable的子标记
06-27 20:24:41.954:E/AndroidRuntime(532):在安卓上.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:178)
06-27 20:24:41.954:E/AndroidRuntime(532):在android.graphics.drawable.drawable.createFromXmlInner(drawable.java:867)
06-27 20:24:41.954:E/AndroidRuntime(532):在android.graphics.drawable.drawable.createFromXml(drawable.java:804)
06-27 20:24:41.954:E/AndroidRuntime(532):在android.content.res.Resources.loadDrawable(Resources.java:1920)上
我知道直接访问
@color/legacy\u pressed\u highlight
@color/holo\u blue\u light
而不是通过
colorppressed highlight
访问它们可以修复崩溃,但这并不能解决问题。主题可以不同,因此我需要通过
colorPressedHighlight
属性访问它


PS:我有一个类似的问题,我还没有找到答案。有人能帮忙吗

也许您还需要在文件res/values/attrs.xml中声明属性引用:

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

并将其称为
?colorPressedHighlight
,而不是
?android:colorPressedHighlight

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