Я создал 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?
Спасибо!
It не работает. Я пытаюсь вызвать тот же случайный код генератора цвета в существующей форме, но это ничего не меняет. – Jared
Хорошо. Вы пытались создать новую фигуру и снова установить ее в виде изображения вместо того, чтобы просто менять цвет? – Abhinav