2011-03-12 2 views
1

Я создал ShapeDrawable и поместил его в изображение, которое динамически создается в моем макете. Вот код, который я использую, чтобы назначить drawable моему ImageView. Обратите внимание, что я вызываю метод для установки случайного цвета, я также устанавливаю высоту и ширину, используя заполненные пользователем текстовые поля, но это не имеет значения здесь.Android: Выполнение действий на ShapeDrawable в ImageView?

ShapeDrawable shape; 

public void makeShape(){ 

    shape = new ShapeDrawable(new RectShape()); 
    shape.setIntrinsicHeight(Integer.parseInt(ET_Height.getText().toString())); 
    shape.setIntrinsicWidth(Integer.parseInt(ET_Width.getText().toString())); 
    shape.getPaint().setColor(chooseColor()); 
    iView.setImageDrawable(shape); 
} 

Эта часть кода работает прекрасно, это когда я потом попытаться получить доступ к вытяжке, чтобы изменить его цвет на клику пользователя, используя тот же метод, цвет от ранее.

public void onClick(View v){ 

    iView.getDrawable().getPaint().setColor(chooseColor()); 
} 

Очевидно, что этот код не работает, но это ближе я пришел в состоянии завершить его. Я также не могу получить доступ к drawable через «форму», и я не понимаю, почему.

Итак, что является лучшим способом получить доступ к доступным для изменения цвета, альфы, вращения и т. Д. В методе onClick?

Спасибо!

ответ

1

Попробуйте iView.setImageDrawable (shape) снова после изменения формы параметров.

+0

It не работает. Я пытаюсь вызвать тот же случайный код генератора цвета в существующей форме, но это ничего не меняет. – Jared

+0

Хорошо. Вы пытались создать новую фигуру и снова установить ее в виде изображения вместо того, чтобы просто менять цвет? – Abhinav

0

Я использовал решение Абхинава к этой же проблеме, и она работала для меня Основном использованияКонтактной тех же параметров, которые я использовал, чтобы создать форму, то только что создал такую ​​же форму снова и установить цвет и границы существующей форму

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