如何在代码中设置textview的背景?

时间:2011-10-17 05:56:30

标签: android textview

我将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();
   }
});

5 个答案:

答案 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));

这也应确保保持向后兼容性(未经我自己测试)