我有一个类,我在其中放置了大量代码来处理不同的 API,这样您就可以为一个 API 使用一行代码,为另一个 API 使用另一行代码。
public static void setBackgroundDrawable(View view, Drawable drawable) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
view.setBackground(drawable);
}
else {
view.setBackgroundDrawable(drawable);
}
}
这仍然会给您一个警告,因为setBackgroundDrawable
已弃用,但如果您改为使用setBackground(drawable)
所有版本,那么您的应用程序将在低于 Jelly Bean (API 16) 的 API 级别上崩溃。
但是,在您的情况下,您实际上需要做的只是setBackgroundResource(R.drawable.tv_pic_back);
因为您不需要自己从资源 id 获取可绘制对象,如果您在调用正确的方法时给它您的资源 id,Android 会为您执行此操作。
Android 开发者参考将告诉您哪些方法已被弃用,哪些方法在哪个 API 版本中实现。