如何在一个视图的drawable中设置后台xml文件?

时间:2013-09-13 20:07:30

标签: android xml background syntax-error drawable

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

例如我为textview

创建了一个可绘制的xml文件

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

如何在没有@SuppressLint("NewApi")的情况下使用它?

1 个答案:

答案 0 :(得分: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中获取drawable,如果您给它资源ID,Android将为您执行此操作你称之为正确的方法。

Android developer reference将告诉您哪些方法已弃用以及哪些方法在哪个API版本中实现。