Ответ 1
Используйте этот
textView.getCurrentTextColor()
В заданном коде 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() 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/
Если вы используете библиотеку 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)));
Вы можете получить код цвета из TextView.
int color=tv.getCurrentTextColor();
String hexColor = String.format("#%06X", (0xFFFFFF & color));