如何获取TextView的文本颜色?

Jig*_*iya 56 android

在给定的代码中lbl [0] .getTextColor()给出了Error,但我不知道如何在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);
}   
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jef*_*ffG 148

用这个

textView.getCurrentTextColor()


小智 12

有一点需要记住:getCurrentTextColor()以及getCurrentHintTextColor()和getHighlightColor()等类似方法返回int值而不是主要用于定义颜色的十六进制.这甚至可能更令人困惑,因为这是负数,例如红色是-65536,绿色-16711936和白色-1.

为了简单起见,这是因为getCurrentTextColor()返回当前颜色和白色值(均为十进制)减去1之间的差异.表达式为:CurrentColor-(WhiteColor + 1),其中white为16777215.当然对于标准颜色你可以使用像Color.GREEN或Color.MAGENTA这样的预定义常量,但知道你可以有效地使用getCurrentTextColor()来获取任何颜色.

您可以在http://android4beginners.com/2013/07/lesson-1-3-how-to-change-a-color-of-text-and-background-in上阅读更多有关在Android中设置和获取颜色的信息.-textview /

  • 不必要的混乱.'getCurrentTextColor()'返回恰好是整数的颜色值 - 存储在32个字节上.4组8个字节.它既不是十六进制也不是十六进制,直到您将其转换为字符串,并且您不需要使用白色值进行任何计算. (12认同)

Rus*_*ppa 6

您可以从TextView获取颜色代码。

int color=tv.getCurrentTextColor();
String hexColor = String.format("#%06X", (0xFFFFFF & color));
Run Code Online (Sandbox Code Playgroud)