Android 如何获取TextView的文本颜色?
在给定的代码lbl[0]中,getTextColor()给出错误,但我不知道如何在java文件中获取textview的文本颜色,请帮助我Android 如何获取TextView的文本颜色?,android,Android,在给定的代码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].setTextC
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);
}
谢谢。用这个
textView.getCurrentTextColor()
有一件重要的事情需要记住:getCurrentTextColor()以及类似的方法,如getCurrentHintTextColor()和getHighlightColor()返回的int值不是主要用于定义颜色的十六进制值。这可能会更令人困惑,因为这是一个负数,例如红色是-65536,绿色是-16711936,白色是-1
为了简单起见,这是因为getCurrentTextColor()返回当前颜色和白色值(均为十进制)之间的差值减去1。表达式为:CurrentColor-(WhiteColor+1),其中白色为16777215。
当然,对于标准颜色,您可以使用预定义的常量,如Color.GREEN或Color.MAGENTA,但要知道,您可以有效地对任何颜色使用getCurrentTextColor()
如果您使用contextcompat库为新版本的Android设置颜色,您可能会得到一个与上面明显不同的值。这个测试对我来说很有效,我使用下面的设置测试颜色 view.setTextColor(ContextCompat.getColor(ctx,color))
您可以从文本视图中获取颜色代码
int color=tv.getCurrentTextColor();
String hexColor = String.format("#%06X", (0xFFFFFF & color));
不必要的混乱。”getCurrentTextColor()返回恰好是整数的颜色值-存储在32字节上。4组8字节。它既不是十六进制也不是十进制,除非将其转换为字符串,并且不需要使用白色值进行任何计算。
int color=tv.getCurrentTextColor();
String hexColor = String.format("#%06X", (0xFFFFFF & color));