我目前正在阅读Head First Android开发书籍。
这个问题与第13章中的代码有关,并带有指向以下特定文件的链接:
以下代码使用不推荐使用的方法.getDrawable:
Drawable drawable = cardView.getResources().getDrawable(imageIds[position]);
对于新的SDK,可以通过将代码更改为:
来解决Drawable drawable = cardView.getResources().getDrawable(imageIds[position], null);
但是,我无法让代码工作的最小SDK为17,并尝试使用ContextCompat。我发现之前使用的兼容性解决方案已被弃用。
谢谢
答案 0 :(得分:3)
ContextCompat.getDrawable(Context context, int id)
,这是在此方案中使用的正确方法。
如果出于某种原因您不想使用ContextCompat
,您可以随时使用the same code it uses:
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);
}
}