在给定的代码中lbl [0] .getTextColor()给出错误,但我不知道如何在java文件中获取textview的文本颜色请帮帮我。
public void angry(View v)
{
if (lbl[0].getTextColor() == Color.BLACK)
lbl[0].setTextColor(Color.RED);
if (lbl[0].getTextColor() == Color.RED)
lbl[0].setTextColor(Color.BLACK);
}
感谢。
答案 0 :(得分:142)
使用此
textView.getCurrentTextColor()
答案 1 :(得分:11)
有一件重要的事情要记住:getCurrentTextColor()以及getCurrentHintTextColor()和getHighlightColor()之类的类似方法返回int值而不是主要用于定义颜色的十六进制。这甚至可能更令人困惑,因为这是负数,例如红色是-65536,绿色-16711936和白色-1。
为简单起见,这是因为getCurrentTextColor()返回当前颜色和白色值(均为十进制)减去1之间的差值。表达式为:CurrentColor-(WhiteColor + 1),其中white为16777215。 当然,对于标准颜色,您可以使用预定义的常量,如Color.GREEN或Color.MAGENTA,但知道您可以有效地使用getCurrentTextColor()作为任何颜色。
了解有关在Android中设置和获取颜色的更多信息答案 2 :(得分:4)
您可以从TextView中获取颜色代码。
int color=tv.getCurrentTextColor();
String hexColor = String.format("#%06X", (0xFFFFFF & color));
答案 3 :(得分:0)
如果您使用contextcompat库为新版本的android设置颜色,那么您可能会得到与上面相同的值。这个测试适用于我,我使用以下设置测试颜色
view.setTextColor(ContextCompat.getColor(ctx,color));
textColor =view.getCurrentTextColor();
CoreApp.debug("viewutils", "green color: "+textColor);
assertThat(textColor, is(ContextCompat.getColor(mCtx, R.color.green)));