经过搜索和尝试,我得到的提示是,你可以做一些事情和一些你不能做的事情.
您可以
a)在attrs中定义自己的属性
b)在styles.xml中设置它们的值
@color/White
@color/Black
c)在任何视图中使用它们?color_gallery_backround或?attr / color_gallery_backround
例如
android:background="?attr/color_gallery_backround"
你不能
a)您无法从自定义drawable中访问此属性,因为它们在期间无效
通货膨胀
所以你不能在这里使用?attr / color_gallery_backround:
customshape.xml
android:shape="rectangle" >
b)您无法在视图中访问此属性(例如)
ListView作为ListItem视图
因此,对于至少属于API 10的属性的主题“支持”具有深度限制.
解决方案
如建议的那样,您必须使用不同的颜色创建两个单独的drawable,并根据主题设置属性以引用这些drawable:
attrs.xml
并在每个主题上,设置要在styles.xml中使用的实际drawable:
@drawable/round_rect_shape_dark
@drawable/round_rect_shape_white
现在你可以将你的drawable引用为?rounded_background并让主题选择它.
对于ListView listitem布局中的膨胀视图,您必须以编程方式设置颜色.