ShapeDrawableを作成し、レイアウト内に動的に作成されたイメージビュー内に配置しました。 DrawableをImageViewに割り当てるために使用するコードは次のとおりです。私は、ランダムな色を設定するメソッドを呼び出すことに注意してください、私はまた、ユーザーが入力したテキストフィールドを使用して高さと幅を設定しますが、ここでは無関係です。Android:ImageView内のShapeDrawableでアクションを実行しますか?
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メソッドでドロアブルの色、アルファ、ローテーションなどを変更するにはどうすればよいですか?
ありがとうございます!
それを動作しません。私は、既存の図形上で同じランダムな色ジェネレータコードを呼び出そうとしていますが、何も変更していません。 – Jared
新しいシェイプドローブを作成し、色を変更するのではなく、イメージビューで再度設定しようとしましたか? – Abhinav