Подтвердить что ты не робот

Как получить цвет текста 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);
}   

Спасибо.

4b9b3361

Ответ 1

Используйте этот

textView.getCurrentTextColor()

Ответ 2

Следует помнить одну важную вещь: getCurrentTextColor(), а также аналогичные методы, такие как getCurrentHintTextColor() и getHighlightColor() return int value, а не hex, используемые в основном для определения цветов. Это может быть даже более запутанным, так как это отрицательное число, например, для красного оно -65536, для зеленого -16711936 и для белого -1.

Чтобы сделать это простым, это потому, что getCurrentTextColor() возвращает разницу между текущим цветом и значением белого цвета (оба в десятичном) минус 1. Выражение: CurrentColor- (WhiteColor + 1), где белый - 16777215. Конечно, для стандартных цветов вы можете использовать предопределенные константы, такие как Color.GREEN или Color.MAGENTA, но зная, что вы можете эффективно использовать getCurrentTextColor() для любых цветов.

Вы можете еще больше узнать о настройке и получении цветов в Android на http://android4beginners.com/2013/07/lesson-1-3-how-to-change-a-color-of-text-and-background-in-textview/

Ответ 3

Если вы используете библиотеку contextcompat для установки цвета для новых версий android, вы можете получить визуально различное значение, чем то, что было выше. Этот тест работал у меня, когда я использовал следующее, чтобы установить тестовый цвет

view.setTextColor(ContextCompat.getColor(ctx, цвет));

    textColor =view.getCurrentTextColor();
    CoreApp.debug("viewutils", "green color: "+textColor);
    assertThat(textColor, is(ContextCompat.getColor(mCtx, R.color.green)));

Ответ 4

Вы можете получить код цвета из TextView.

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