android TextView:动态设置背景颜色不起作用
以编程方式设置背景颜色的android textview似乎不工作。 我是我想念的东西!android TextView:动态设置背景颜色不起作用
TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);
我也有我的资源文件(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");
我同意一种颜色,一个资源具有相同的类型,但我还花了几个小时寻找这一解决方案。
我现在还不完全了解它(查看api文档),但它确实有用,所以谢谢! – 2010-04-23 05:17:56
谢谢,你已经救了我几个小时!现在我知道了解决方案,这对我来说很有意义,但我相信这需要我花几个小时才能自行解决。 – FreewheelNat 2010-12-15 10:11:10
谢谢。有时Android API非常不直观。 – 2011-03-28 12:49:44
可以使用android:textColor= "
任何文本颜色U要给”在你的文本视图声明XML文件
背景颜色... – 2012-12-29 21:00:35
要设置红色:
textView.setBackgroundColor(0xfff00000);
或者
<color name="solid_red">#fff00000</color>
textView.setBackgroundResource(R.color.solid_red);
很好的答案...我会明天投票.. – Aravindhan 2011-07-07 18:58:05
要回应badMonkey的答案,因为这是更受欢迎的答案,你必须设置高位为非零的透明度。我一直通过指定没有A的RGB来捕捉它。要将背景设置为纯蓝色,请使用0xff0000ff,而不是0x0000ff,否则它将不起作用。 – JohnnyLambada 2013-07-03 00:57:47
在.xml中,
我有一个类似的问题,我在创建数字颜色时未考虑领先的alpha通道,即mytext.setTextColor(0xFF0000)
(认为这是红色的)。它也是100%透明的,因为it = 0x00FF0000;
正确的100%不透明值是0xFFFF0000
或mytext.setTextcolor(0xFFFF0000)
。
啊,这就是为什么我的颜色出现错误! – marlar 2011-07-14 09:12:17
突出部分使用
ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, your array list);
嗯,我有情况时,Web服务返回的十六进制格式的颜色,如“#CC2233”,我想用setBackGroundColor()穿上TextView的这个颜色,所以我用的android Color类获得十六进制字符串的int值并将其传递给提到的函数。一切正常。 这是例子:
String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));
P.S.张贴这个答案,因为其他解决方案不适合我。我希望这会帮助别人:)
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"));
tv.setTextColor(getResources().getColor(R.color.solid_red));
就在1行代码改变的背景编程
tv.setBackgroundColor(Color.parseColor("#808080"));
感谢哥们。它确实有帮助 – 2015-05-27 18:39:52
下面是步骤去做正确:
-
首先声明一个实例您的MainActivity.java中的TextView如下:
TextView mTextView;
-
设置一些文本动态地(如果你想)如下:
mTextView.setText("some_text");
-
现在,设置背景颜色,你需要定义在水库>值 - >颜色自己的颜色.xml文件如下:
<resources> <color name="my_color">#000000</color> </resources>
-
现在,您可以使用您的Java文件“my_color的”颜色动态设置背景如下:
mTextView.setBackgroundResource(R.color.my_color);
如果你想支持所有的版本,这样做:
myTextView.setBackgroundColor(ContextCompat.getColor(这一点,R.color.mycolor));
这里是个小细节,
如果你在活动中使用该
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
android API真的是一些东西,为什么不能抛出一个错误呢? – Tawani 2009-09-23 17:05:58
因为这不是错误。 setBackgroundColor()采用数字形式的颜色(例如,红色为0xFFFF0000)。 R.color.white也是一个数字。 – CommonsWare 2009-09-23 17:15:25
D'oh!对于枚举而言,这绝对可以做得更好,而不是无处不在的整数。感谢你的回答。 – 2012-09-02 15:21:43