我所拥有的是:
显现:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="18" />
资源:
View view = createViewFromWhatever();
Bitmap bitmap = loadSomethingAddMore();
我搜索过的所有地方都是公认的建议:
view.setBackgroundDrawable(new BitmapDrawable(bitmap));
但它在 API 18 中已弃用。我被框架错误吓坏了,并且错过了操作系统级别的文档。我想尊重他们所说的话,如果发生崩溃“这不是我的错”
我什至不能使用new BitmapDrawable(bitmap)
and I neednew BitmapDrawable(getActivity().getResources(), bitmap)
来代替。如果我将方法更改为推荐的方法:setBackground(new BitmapDrawable(getActivity().getResources(), bitmap));
它将用消息标记为错误:
调用需要 API 级别 16(当前最低为 10):android.widget.RelativeLayout#setBackground
作为一种解决方案,我可以检查正在运行用户的版本并执行 if-else,而不是我将使用的代码if(isAndroidVersion10()) else if () ...
任何解决方案可接受的解决方案?
如果我通过反射从弃用警告中逃脱,我仍然会在崩溃的情况下承担责任,因为我已经使用弃用的方法发布了代码!- 只是我打电话的方式不同。
如果我忽略那个 Lint,那么它会在测试的低版本 api 处崩溃。
Ofc 我想支持 API 10 ,所以不能接受这里的大部分答案