Я создал 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);
}
Эта часть кода прекрасно работает, это когдаПозже я пытаюсь получить доступ к Drawable, чтобы изменить его цвет по щелчку пользователя, используя тот же метод цвета, что и раньше.
public void onClick(View v){
iView.getDrawable().getPaint().setColor(chooseColor());
}
Очевидно, этот код не работает, но это самый близкий мне вариантв состоянии завершить это.Я также не могу получить доступ к рисованию через «форму», и я не понимаю, почему.
Итак, каков наилучший способ получить доступ к рисованию, чтобы изменить его цвет, альфа, вращение и т. Д. Вметод onClick?
Спасибо!