【问题】
Android中,之前已经在:
/res/values/themeConfig.xml
中定义好了一个Color:
<color name="TabUnselectedStripColor">#B1ADAD</color>
然后在另外的:
/res/drawable/tab_indicator_ab_mmstyle.xml
中想要引用这个Color:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <!-- <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/TabUnselectedStripColor" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_mmstyle" /> ..... </selector>
但是出错了:
error: Error: No resource found that matches the given name (at ‘drawable’ with value ‘@android:color/ TabUnselectedStripColor’) |
如图:
【解决过程】
1.很明显,就是不知道如何引用color。
搜:
android reference style color
参考:
android – Using Color Reference in Styles – Stack Overflow
去试试:
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@color/TabUnselectedStripColor" />
结果真的就可以了。。。
2.然后才注意到,我之前就已经实现过类似的color引用了:
【已解决】Android程序中通过styles.xml自定义AlertDialog的背景色
之前已经用了这种写法:
<color name="VariableLabel">#2A2598</color> <style name="Variable.Label"> <item name="android:textColor">@color/VariableLabel</item> </style>
的。
【总结】
Android中xml中想要引用已经自己定义好的color等style的话,则直接去用:
@color/xxx
即可。
对应着android系统本身定义的好的,则是:
@android:color/xxx
举例:
别处定义:
<resources xmlns:android="http://schemas.android.com/apk/res/android"> ...... <color name="TabSelectedStripColor">#2A2598</color> <color name="TabUnselectedStripColor">#B1ADAD</color> ...... </resources>
引用的写法是:
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@color/TabUnselectedStripColor" />
即可。
对应的应用android中的已定义好的color的写法是:
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
转载请注明:在路上 » 【已解决】Android中xml中引用自己已定义的Color时出错:error: Error: No resource found that matches the given name (at ‘drawable’ with value ‘@android:color/ TabUnselectedStripColor’)