[英]Android: .getDrawable deprecated, minimum SDK 17 solution?
我目前正在阅读《 Head First Android开发》一书。
这个问题是关于第13章中的代码的,下面是指向特定文件的链接:
以下代码使用了不赞成使用的方法.getDrawable:
Drawable drawable = cardView.getResources().getDrawable(imageIds[position]);
对于新的SDK,可以通过将代码更改为:
Drawable drawable = cardView.getResources().getDrawable(imageIds[position], null);
但是,我无法使代码在最低SDK为17的情况下工作,并尝试使用ContextCompat。 我发现以前使用的兼容性解决方案已弃用。
谢谢
不建议弃用ContextCompat.getDrawable(Context context, int id)
,它是在这种情况下使用的正确方法。
如果出于某种原因您不想使用ContextCompat
,则始终可以使用它使用的相同代码 :
public static final Drawable getDrawable(Context context, int id) {
final int version = Build.VERSION.SDK_INT;
if (version >= 21) {
return context.getDrawable(id);
} else {
return context.getResources().getDrawable(id);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.