android TextView:动态设置背景颜色不起作用

时间:2009-09-23 15:33:54

标签: android textview

以编程方式设置android TextView的背景颜色似乎不起作用。 我错过了什么!

TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);

我的res / values文件夹中还有这个文件(colors.xml)

<resources>
        <color name="white">#ffffffff</color>
        <color name="black">#ff000000</color>
</resources>

[编辑]: 此外,设置文本颜色会导致TextView消失。

TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");

15 个答案:

答案 0 :(得分:310)

使用et.setBackgroundResource(R.color.white);

答案 1 :(得分:71)

试试这个:

TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");

我同意颜色和资源的类型相同,但我也花了几个小时才找到这个解决方案。

答案 2 :(得分:61)

设置红色:

textView.setBackgroundColor(0xfff00000);

或者

<color name="solid_red">#fff00000</color>

textView.setBackgroundResource(R.color.solid_red);

答案 3 :(得分:18)

我有一个类似的问题,我在创建数字颜色而不考虑前导alpha通道。即。 mytext.setTextColor(0xFF0000)(认为这会是红色的)。虽然这是一种红色,但它也是100%透明的it = 0x00FF0000;正确的100%不透明值是0xFFFF0000mytext.setTextcolor(0xFFFF0000)

答案 4 :(得分:7)

当网络服务返回十六进制格式的颜色,如“#CC2233”时,我有这种情况,我想通过使用setBackGroundColor()将此颜色放在textView上,所以我使用android Color类来获取十六进制字符串的int值将它传递给上述功能。一切正常。 这是一个例子:

String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));

P.S。发布此答案,因为其他解决方案对我不起作用。我希望这会有所帮助:)

答案 5 :(得分:7)

这一行代码只是以编程方式更改了背景

tv.setBackgroundColor(Color.parseColor("#808080"));

答案 6 :(得分:3)

tv.setTextColor(getResources().getColor(R.color.solid_red));

答案 7 :(得分:3)

以下是正确执行此操作的步骤:

  1. 首先,在MainActivity.java中声明一个TextView实例,如下所示:

    TextView mTextView;
    
  2. 动态设置一些文本(如果需要),如下所示:

    mTextView.setText("some_text");
    
  3. 现在,要设置背景颜色,您需要在res-&gt; values-&gt; colors.xml文件中定义自己的颜色,如下所示:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. 您现在可以使用&#34; my_color&#34;您的java文件中的颜色动态设置背景,如下所示:

    mTextView.setBackgroundResource(R.color.my_color);
    

答案 8 :(得分:3)

这里的细节很简单,

如果你在活动中使用这个

textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));

如果您在代码

下使用片段
textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));

如果您在recyclerview适配器中使用以下代码

textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));

// use holder.textview if you are in onBindviewholder
//here context is passed from fragment

答案 9 :(得分:2)

Color.parseHexColor("17ee27")对我不起作用,而Color.parseColor("17ee27")完美无缺。

答案 10 :(得分:1)

Jut使用

ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, your array list);

答案 11 :(得分:1)

两种方法:

1.在colors.xml文件中创建颜色,如:

<resources>
        <color name="white">#ffffff</color>
</resources>

并将其用于活动java类:

et.setBackgroundResource(R.color.white);

2

et.setBackgroundColor(getResources().getColor(R.color.white));
                or
et.setBackgroundColor(Color.parseColor("#ffffff"));

答案 12 :(得分:1)

如果您想支持所有版本,请执行以下操作:

myTextView.setBackgroundColor(ContextCompat.getColor(此,R.color.mycolor));

答案 13 :(得分:0)

要从资源中设置颜色,请按照以下步骤操作:

textView.setBackgroundColor(getResources().getColor(R.color.ButtonColorRed));

这里的 ButtonColorRed 是颜色资源中的颜色名称

答案 14 :(得分:-9)

您可以在声明文本视图的xml文件中使用android:textColor= "您要提供的任何文本颜色。