我想设置一个视图的背景绘图。这有两个方法(据我所知):setBackground和setBackgroundDrawable。

当我使用setBackground时,它说它已添加在API级别16,但我的项目的最小SDK版本是7。我猜在16秒以下就不管用了,对吗?但当我使用setBackgroundDrawable时,它说它已弃用。

我应该用什么?


当前回答

使用setBackgroundResource (R.drawable.xml / png)

其他回答

您可以使用API级别1中的setBackgroundResource()代替。

我也有这个问题,但我做了一个工作使用ImageView。

尝试使用RelativeLayout并在其中添加一个ImageView(宽度和高度:fill_parent, scaleType: center)。

同时确保imageview是RelativeLayout中的第一个元素,因此它将作为背景。

现在您可以使用这两个选项中的任何一个。这在任何情况下都是可行的。 你的颜色可以是十六进制代码,像这样:

myView.setBackgroundResource(ContextCompat.getColor(context, Color.parseColor("#FFFFFF")));

一个颜色资源,像这样:

myView.setBackgroundResource(ContextCompat.getColor(context,R.color.blue_background));

或者一个自定义的xml资源,像这样:

myView.setBackgroundResource(R.drawable.my_custom_background);

希望能有所帮助!

使用ViewCompat。setBackground(视图、背景);

使用Android studio 1.5.1我得到以下警告:

Call requires API level 16 (current min is 9): android.view.View#setBackground

还有关于折旧的抱怨

'setBackgroundDrawable(android.graphics.drawable.Drawable)' is deprecated

使用这个格式,我摆脱了这两个:

    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        //noinspection deprecation
        layout.setBackgroundDrawable(drawable);
    } else {
        layout.setBackground(drawable);
    }