我将textview背景设置为透明,现在我想在代码中更改它的背景。 当点击mybtn(这是一个按钮)更改textview背景时,怎么做?
代码:
Button btn = (Button) findViewById(R.id.btn_dialog);
btn.setBackgroundColor(color.transparent);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView txt = (TextView) findViewById(R.id.txt);
txt.setBackgroundColor(??????);
Toast.makeText(getBaseContext(), "this test is ok!", Toast.LENGTH_SHORT).show();
}
});
答案 0 :(得分:17)
请勿使用setBackgroundDrawable
,但请使用::
@Override
public void onClick(View v) {
TextView txt = (TextView) findViewById(R.id.txt);
txt.setBackgroundResource(R.drawable.textview_logo);
Toast.makeText(getBaseContext(), "this test is ok!", Toast.LENGTH_SHORT).show();
}
});
确保textview_logo
留在可绘制文件夹
用于设置背景:
txt.setBackgroundColor(Color.RED);
答案 1 :(得分:8)
您可以使用以下颜色设置任何颜色:
txt.setBackgroundColor(Color.parseColor("#BABABA")); // set any custom color as background color
或
txt.setBackgroundColor(Color.RED); // set default RED color as background color
答案 2 :(得分:1)
有3个用于设置背景的人。
txt.setBackgroundResource(int rsid);
txt.setBakgroundDrawable(Drawable object);
txt.setBackgroundColor(color id);
最合适的是 txt.setBackgroundResource(int rsid);您可以在其中直接从drawable文件夹设置图像,如下所示:
txt.setBakgroundResource(R.drawable.image_name);
答案 3 :(得分:0)
如果您需要通过颜色识别,您应该使用:
txt.setBackgroundColor(R.color.someColorInColorsXML);
或
txt.setBackgroundDrawable(new ColorDrawable(AARRGGBB));
答案 4 :(得分:0)
发布API级别23后,我相信最佳做法是使用:
setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.my_color));
这也应确保保持向后兼容性(未经我自己测试)