如果我知道该颜色的十六进制颜色,我需要知道如何获取前景色的代码。
<string name="name">Asavbasb <font fgcolor="#33b5e5">look</font></string>
这是我的十六进制#33b5e5颜色的代码,但如果我在fgcolor="33b5e5"
中使用它,所选文本是白色而不是蓝色,所以我的问题是如何获取该前景色的代码?
答案 0 :(得分:1)
而不是上述,为什么不使用fromHTML功能?
类似的东西:
myTextView.setText(Html.fromHtml("Asavbasb <font fgcolor='#33b5e5'>look</font>"));
或者,如果您确实需要颜色代码,可以使用Color.parseColor(String);
获取颜色代码答案 1 :(得分:1)
您是否尝试过将颜色更改为fgcolor="#ff33b5e5"
?
我认为使用Android内联颜色,您需要声明Alpha通道。
答案 2 :(得分:0)
这是如何从十六进制字符串创建颜色并将其影响到TextView
:
final int color = Color.parseColor("#33b5e5");
final TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(color);
答案 3 :(得分:0)
在4.x之前,你可以这样做:
<string name="error"><font fgcolor="#ff33b5e5">Error!</font></string>
然而,bug https://code.google.com/p/android/issues/detail?id=58192打破了这个功能,因为它引入了一个整数解析器,无法处理具有最高位设置的数字,不幸的是你不能省略颜色的不透明部分(大多数人都会我喜欢在这个例子中设置为ff。)
我昨天刚刚学会了巧妙的解决方法。你所做的是否定二进制补码中的十六进制颜色值。如何执行此操作取决于您的十六进制计算器,但最简单的方法是从0x100000000中减去颜色。在您的情况下,这将导致0x100000000 - 0xff33b5e5 = 0xcc4a1b。 (或者你可以反转它,例如00cc4a1a,它足够接近)。然后用减号再次否定这一点:
<string name="error"><font fgcolor="-#cc4a1b">Error!</font></string>
和voilla!你有你想要的颜色。
感谢TWiStErRob在https://stackoverflow.com/a/11577658/338479
中搞清楚这一点ETA:我刚刚发现如果你在2.x系统上这样做会导致你的应用程序崩溃;它抛出一个NumberFormat异常