如何在API Level 21之前的代码中获得主题化的drawable?

4
我想使用 ContextResources 来获取一个主题化的 drawable,而我的 minSDK 是 15。我该怎么做? 开发者文档中关于 Resources 的说明 中有这样一条注释:

注意:要获取一个主题化的 drawable,请使用 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 之前真的没有办法获取一个主题化的 drawable 吗?
如果需要,我可以提供示例代码,但实际上它只是一个包含属性的 attrs.xml,定义了该属性的 themes.xml,应用该属性的 ContextThemeWrapper,以及使用 <solid android:color="?attr/MY_ATTRIBUTE" />drawable/foobar.xml
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接