【发布时间】:2016-03-16 00:30:01
【问题描述】:
我想使用Context 或Resources 来获取主题drawable,而我的minSDK 是15。我该怎么做呢?
developer documentation for Resources 有一个注释,上面写着,
注意:要获得主题可绘制对象,请使用 Context.getDrawable(int) 或 getDrawable(int, Theme) 传递所需的主题。
Context.getDrawable(int) 和 Resources.getDrawable(int, Theme) 都是在 API 21 中添加的,所以我不能使用它们。如果我查看 [ResourcesCompat 文档](http://developer.android.com/reference/android/support/v4/content/res/ResourcesCompat.html#getDrawable(android.content.res.Resources, int, android.content.res.Resources.Theme)),它有类似的限制:
在 API 级别 21 之前,不会应用主题,并且此方法只是调用 getDrawable(int)。
在 API 级别 21 之前真的没有办法获得主题可绘制对象吗?
如果需要,我可以提供示例代码,但它实际上只是一个指定属性的attrs.xml,定义该属性的themes.xml,应用它的ContextThemeWrapper,以及使用<solid android:color="?attr/MY_ATTRIBUTE" /> 的drawable/foobar.xml。
【问题讨论】:
标签: android android-drawable android-resources android-context