1

如何在不使用视图的情况下设置放置在可绘制视图中的 xml 背景文件@SuppressLint("NewApi")

例如,我为我的 textview 创建了一个可绘制的 xml 文件

当我调用TV.setBackground(getResources().getDrawable(R.drawable.tv_pic_back));eclipse时@SuppressLint("NewApi"),会在我的函数的第一个自动添加。

我怎么能没有它@SuppressLint("NewApi")

4

1 回答 1

4

我有一个类,我在其中放置了大量代码来处理不同的 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 版本中实现。

于 2013-09-13T20:13:31.867 回答