如何获取TextView的文本颜色?

时间:2011-07-19 10:58:44

标签: 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].setTextColor(Color.BLACK);
}   

感谢。

4 个答案:

答案 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()作为任何颜色。

您可以在http://android4beginners.com/2013/07/lesson-1-3-how-to-change-a-color-of-text-and-background-in-textview/

了解有关在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)));