我在使用自定义属性时遇到了问题。请帮忙..
我在 attr.xml 中定义了自定义属性
<attr format="reference" name="btnPressed" />
<attr format="reference" name="btnNormal" />
我有一个主题
<style name="MyTheme" parent="@style/Theme.Sherlock.Light.NoActionBar">
<item name="btnPressed">@drawable/fav_icon</item>
<item name="btnNormal">@drawable/not_fav_icon</item>
</style>
在上面的 fav_icon 和 not_fav_icon 是我的图像。
我为切换按钮定义了一个选择器 favorite_btn.xml。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="?attr/btnPressed"/>
<item android:state_checked="false" android:drawable="?attr/btnNormal"/>
<item android:drawable="?attr/btnNormal"/>
</selector>
现在我将选择器设置为我的切换按钮。
<ToggleButton
android:id="@+id/station_fav_star"
android:layout_width="42dip"
android:layout_height="42dip"
android:background="@drawable/favorite_btn"
android:textOff=""
android:textOn="" />
我正在将主题应用到我的活动中。但是我得到了如下所述的 Xml Parse Exception。
原因:org.xmlpull.v1.XmlPullParserException:二进制 XML 文件第 11 行:标签需要“可绘制”属性或定义可绘制对象的子标签
我正在使用相同的方法使用自定义属性将图像设置为普通按钮,并且它正在工作。但是当在选择器中定义自定义属性时,它就不起作用了。
如果我遗漏了什么,请告诉我。
我已经检查过这个链接 Android 颜色选择器不适用于自定义属性
因为它说明了颜色的变化。就我而言,它们是可绘制的。如果还有其他方法,请提出解决方案。
提前致谢..