首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android getResources().getDrawable()不推荐使用API 22

Android getResources().getDrawable()不推荐使用API 22
EN

Stack Overflow用户
提问于 2015-03-14 04:05:02
回答 15查看 433.2K关注 0票数 812

使用新的android API 22

现在已弃用。现在最好的方法是只使用

..。

什么改变了?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2015-03-19 22:13:36

您有一些选项可以处理这个弃用(和

未来的证明

)方式,这取决于您加载的是哪种类型的可绘制文件:

A)

可绘制的

使用

主题属性

代码语言:javascript
复制
ContextCompat.getDrawable(getActivity(), R.drawable.name);

根据活动主题的指示,您将获得一个带样式的可绘制内容。这可能就是您需要的。

B)

可绘制的

没有

主题属性

代码语言:javascript
复制
ResourcesCompat.getDrawable(getResources(), R.drawable.name, null);

你会用旧的方式得到你的无样式的可抽屉。请注意:

注释

已弃用!

额外)

可绘制的

使用

主题属性来自

另一个

主题

代码语言:javascript
复制
ResourcesCompat.getDrawable(getResources(), R.drawable.name, anotherTheme);
票数 1.2K
EN

Stack Overflow用户

发布于 2015-03-14 04:32:36

编辑:请参见

我的博客文章

关于这个主题的更完整的解释

您应该改用support库中的以下代码:

代码语言:javascript
复制
ContextCompat.getDrawable(context, R.drawable.***)

使用此方法相当于调用:

代码语言:javascript
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    return resources.getDrawable(id, context.getTheme());
} else {
    return resources.getDrawable(id);
}

从API21开始,您应该使用

方法,而不是

,因为它允许您获取与给定屏幕密度/主题的特定资源ID相关联的可绘制对象。调用已弃用的

方法等效于调用

..。

票数 751
EN

Stack Overflow用户

发布于 2015-03-18 16:32:09

替换此行:

使用

编辑

现在也被弃用了。但是你可以使用这个:

(此处

是上下文)

有关更多详细信息,请访问此链接:

ContextCompat

票数 145
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29041027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档