题
以编程方式设置 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%不透明值为0xFFFF0000
或mytext.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。张贴了这个答案,因为其他的解决方案并没有为我工作。我希望这会帮助别人:)
以下是正确执行此操作的步骤:
首先,在 MainActivity.java 中声明一个 TextView 实例,如下所示:
TextView mTextView;
动态设置一些文本(如果需要)如下:
mTextView.setText("some_text");
现在,要设置背景颜色,您需要在 res->values->colors.xml 文件中定义自己的颜色,如下所示:
<resources> <color name="my_color">#000000</color> </resources>
现在,您可以在 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文件。