Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获取TextView的文本颜色?_Android - Fatal编程技术网

Android 如何获取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

在给定的代码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);
}   
谢谢。

用这个


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));