Влияет ли изменение цвета фона в Android на внешний вид виджета? - PullRequest
7 голосов
/ 23 мая 2010

Я заметил, что изменение цвета фона виджета Android ( напр. Button или TextView ) программой:

myButton.setBackgroundColor(Color.BLUE);

приводит к потере 3D-формы, границыи эффекты теней, а затем появляется как уродливый плоский квадрат.Чего мне не хватает?

Извините за очень наивный вопрос, но я не мог понять его правильно, хотя пытался какое-то время.

Ответы [ 3 ]

2 голосов
/ 23 мая 2010

Закругленные углы, эффекты тени и т. Д. Часто выполняются в Android с помощью изображений. См. документацию для разработчиков для объяснения того, как это работает.

Виджет может иметь либо фон изображения, либо однотонный фон. Итак, устанавливая цвет фона, вы переопределяете фоновое изображение. Если вы хотите изменить цвет, не теряя ничего, вам нужно отредактировать файлы изображений.

0 голосов
/ 27 января 2017

Поскольку фон является рисованным, вы можете изменить его для изменения цвета:

myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...