gpt4 book ai didi

java - Android:.getDrawable 已弃用,最低 SDK 17 解决方案?

转载 作者:行者123 更新时间:2023-12-01 21:59:28 25 4
gpt4 key购买 nike

我目前正在阅读《Head First Android 开发》一书。

这个问题是关于第 13 章中的代码,带有指向以下特定文件的链接:

https://github.com/dogriffiths/HeadFirstAndroid/blob/master/chapter14/BitsAndPizzas/app/src/main/java/com/hfad/bitsandpizzas/CaptionedImagesAdapter.java

下面的代码使用了已弃用的方法 .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,您可以随时使用 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);
}
}

关于java - Android:.getDrawable 已弃用,最低 SDK 17 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com