Как вы определяете цвет фона TextView? - PullRequest
3 голосов
/ 16 января 2012

В моих тестах я хочу убедиться, что вид (а не ImageView) имеет определенный цвет фона.Как я мог сделать это напрямую, взаимодействуя с рассматриваемым представлением?

Фон этого представления не является Drawable.Он был задан в XML или с помощью view.setBackgroundColor(...).

Ответы [ 3 ]

2 голосов
/ 11 апреля 2013

вы можете использовать это для получения цвета фона textview ..

yourTextView.getBackgroundResource (R.color.white);

, где color.xml - этоопределяется в папке res / values ​​как

<color name="white">#ffffffff</color>

1 голос
/ 17 января 2012

ColorDrawable имеет метод getColor (), который возвращает значение int, представляющее его цвет. Когда вы создаете объект ColorDrawable, вы вызываете setColor (), чтобы установить цвет фона. Теперь вы можете сравнить два значения цвета int, чтобы увидеть, равны ли они. Вам нужно привести его как ColorDrawable, а не как Drawable интерфейс

ColorDrawable drawable = (ColorDrawable) view.getBackground ();

1 голос
/ 17 января 2012

Это потребует от вас небольшого рефакторинга, но вместо использования setBackgroundColor () вы можете использовать setBackgroundDrawable () и передать экземпляр ColorDrawable.Это действительно больше не работа, чем то, как вы это делали, и ColorDrawable позволяет вам установить его цвет, а также получить его позже, когда вы будете выполнять тест.Все объекты View реагируют на метод getBackground (), который возвращает Drawable этого экземпляра.

Это должно работать для вас, и это действительно не добавляет никаких накладных расходов, потому что даже если вы вызываете setBackgroundColor, Android необходимо создатьDrawable для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...