如何获得textview的文本颜色?
在给定的代码lbl [0] .getTextColor()给出错误,但我不知道如何获得textview的文本颜色的java文件,请帮助我。
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值不是hex主要用于定义颜色。 这甚至可能会更令人困惑,因为这是负数,例如红色是-65536,绿色是-16711936,白色是-1。
为了简单起见,这是因为getCurrentTextColor()返回当前颜色和白色颜色值(都是十进制)减去1之间的差值。expression式是:CurrentColor-(WhiteColor + 1),其中白色是16777215.当然,对于标准颜色你可以使用像Color.GREEN或Color.MAGENTA这样的预定义的常量,但是知道你可以使用getCurrentTextColor()来获得任何颜色。
如果你正在使用contextcompat库来为新版本的android设置颜色,那么你可能会得到一个与上面相同的值。 这个testing对我来说在我使用以下设置testing颜色
view.setTextColor(ContextCompat.getColor(ctx,color));
textColor =view.getCurrentTextColor(); CoreApp.debug("viewutils", "green color: "+textColor); assertThat(textColor, is(ContextCompat.getColor(mCtx, R.color.green)));