2012-06-01 2 views
0

У меня есть вид с ShapeDrawable в качестве фона, и я хочу иметь возможность изменять только цвет фона («сплошную» часть) Drawable, не меняя другого (например, «удар»). Есть ли способ сделать это? Спасибо.Изменение только определенной части динамического динамически

ответ

0

Я нашел решение: На самом деле, в моем случае, я определил рисуем в виде файла XML, и Android преобразовал его в GradientDrawable объекта, а не ShapeDrawable, поэтому я бросил его в RTT (типа времени выполнения), а затем использовали его SetColor функцию:

GradientDrawable colorBackground=(GradientDrawable)currentColorView.getBackground(); 
colorBackground.setColor(color); 

Как я уже сказал, это работает только для GradientDrawable, так и для других типов рисуемых, другой способ должен быть поиск.

0

Как насчет setColorFilter().

Вы можете использовать это в сочетании с invalidate(), чтобы выталкиваемый перерисовывался. Посмотрите на эти ссылки для справки

ShapeDrawable colorfilter

Drawable InvalidateSelf

я наткнулся на хороший пост в стеке. Взгляните также на это. How to change colors of Android drawable

Смежные вопросы