Как использовать ColorDrawable с ImageView?

У меня есть макет с 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

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

ColorDrawable cd = new ColorDrawable(0xffff0000);

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

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