设置背景信息:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);

这是最好的方法吗?


当前回答

我正在使用minSdkVersion 16和targetSdkVersion 23。 以下是为我工作,它使用

ContextCompat.getDrawable(context, R.drawable.drawable);

而不是使用:

layout.setBackgroundResource(R.drawable.ready);

而使用:

layout.setBackground(ContextCompat.getDrawable(this, R.drawable.ready));

getActivity()在片段中使用,如果从活动调用则使用此方法。

其他回答

在app/res/your_xml_layout_file.xml中

为父布局分配一个名称。 去MainActivity,通过调用findViewById(R.id."given_name")找到RelativeLayout。 通过调用setBackgroundColor()方法,将布局作为经典对象使用。

使用butterknife将可绘制资源绑定到变量,方法是将其添加到类的顶部(在任何方法之前)。

@Bind(R.id.some_layout)
RelativeLayout layout;
@BindDrawable(R.drawable.some_drawable)
Drawable background;

然后在其中一个方法中添加

layout.setBackground(background);

这就是你所需要的

我正在使用minSdkVersion 16和targetSdkVersion 23。 以下是为我工作,它使用

ContextCompat.getDrawable(context, R.drawable.drawable);

而不是使用:

layout.setBackgroundResource(R.drawable.ready);

而使用:

layout.setBackground(ContextCompat.getDrawable(this, R.drawable.ready));

getActivity()在片段中使用,如果从活动调用则使用此方法。

试试下面的代码:

Drawable thumb = ContextCompat.getDrawable(getActivity(), R.mipmap.cir_32);
mSeekBar.setThumb(thumb);
RelativeLayout relativeLayout;  //declare this globally

现在,在任何函数中,如onCreate, onResume

relativeLayout = new RelativeLayout(this);  
relativeLayout.setBackgroundResource(R.drawable.view); //or whatever your image is
setContentView(relativeLayout); //you might be forgetting this