以编程方式设置 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");
有帮助吗?

解决方案

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

其他提示

尝试这种情况:

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

我同意一种颜色,一个资源具有相同的类型,但我还花了几个小时寻找这一解决方案。

要设置红色:

textView.setBackgroundColor(0xfff00000);

或者

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

textView.setBackgroundResource(R.color.solid_red);

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

只是这1行代码改变了背景编程

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

嗯,我有情况时,Web服务返回像“#CC2233”十六进制格式的颜色,我想用setBackGroundColor()穿上TextView的这个颜色,所以我用Android的颜色类来获得十六进制字符串的int值和它传递给提到的功能。一切工作。 这是例如:

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

P.S。张贴了这个答案,因为其他的解决方案并没有为我工作。我希望这会帮助别人:)

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

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

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

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

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

    mTextView.setBackgroundResource(R.color.my_color);
    
tv.setTextColor(getResources().getColor(R.color.solid_red));

这里是在小细节,

如果你在活动使用此

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

Color.parseHexColor("17ee27")并没有为我工作,而不是Color.parseColor("17ee27")完美。

两种方法来做到这一点:

在colors.xml文件1.创建颜色等:

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

和使用它INT活性java类如:

et.setBackgroundResource(R.color.white);

2

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

如果你想支持所有的版本,这样做:

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

突出部分使用

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

您可以使用android:textColor= "任何文本颜色U要给”在你的文本视图声明XML文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top