2014-06-16 25 views
0

我针对API 14和以上。在/values/styles.xml,我有这样的:抽象出不同操作系统版本的可绘制的主题?

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:windowBackground">@drawable/foo</item> 
</style> 

但API 16以上,我想使用一个不同的绘制的windowBackground。

“AppTheme”条目中有很多属性设置,我不想在v16文件夹中复制AppTheme。有没有办法抽象出来只是windowBackground属性,是这样的:

// /values/styles.xml 
<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:windowBackground">@myDefinition</item> 
</style> 

<drawable id="myDefinition">@drawable/foo1</drawable> 

// /values-v14/styles.xml 
<drawable id="myDefinition">@drawable/foo2</drawable> 

这样我可以保持AppTheme只在一个地方定义的?

感谢

回答

0

您可以创建一个drawable folder用于v-16v-14所以当设备API 16/14那么它将会获得文件夹,并用你的drawableStyle XML。

drawable-xhdpi-v16 
+0

正确,但然后我不需要一个文件夹的所有密度?它会工作,但希望android提供了一个更优雅的解决方案 – user3203425

+0

@ user3203425 nope没有其他解决方案,而不是声明接受指定API级别的文件夹 –

0

这似乎是使用drawable-v14/将是一个更好的解决方案。

看到这个其他StackOverflow question。这不是你的问题的重复,但它似乎给出了正确的答案。

相关问题