Как использовать ColorDrawable с ImageView? - PullRequest
17 голосов
/ 31 марта 2010

У меня есть макет с ImageView, определенным как:

<ImageView
  android:layout_width="45dip"
  android:layout_height="45dip"
  android:scaleType="fitXY" />

Теперь я просто хочу установить для изображения представление статического цвета, например красного или зеленого. Я пытаюсь:

ColorDrawable cd = new ColorDrawable("FF0000");
cd.setAlpha(255);
ImageView iv = ...;
iv.setImageDrawable(cd);

изображение просто пустое, без цвета. 45dip пространство используется все же. Что мне нужно сделать, чтобы получить цвет для визуализации?

Спасибо

1 Ответ

28 голосов
/ 31 марта 2010

Глядя на конструктор для ColorDrawable, я не вижу версию, которая принимает строку, как в вашем примере. Я вижу тот, который принимает Int. Попробуйте это:

ColorDrawable cd = new ColorDrawable(0xffff0000);

Обратите внимание, что я использовал 8 шестнадцатеричных цифр, а не 6, как в вашем примере. Это также устанавливает альфа-значение.

Редактировать: Оглядываясь назад на некоторый мой собственный код, где я делал нечто подобное, я всегда использовал setBackgroundDrawable () вместо setImageDrawable () для инициализации ImageView сплошным цветом. Не уверен, что это изменит.

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