2011-03-12 4 views
1

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メソッドでドロアブルの色、アルファ、ローテーションなどを変更するにはどうすればよいですか?

ありがとうございます!

答えて

1

の形状のパラメータを変更した後、iView.setImageDrawable(shape)をもう一度お試しください。

+0

それを動作しません。私は、既存の図形上で同じランダムな色ジェネレータコードを呼び出そうとしていますが、何も変更していません。 – Jared

+0

新しいシェイプドローブを作成し、色を変更するのではなく、イメージビューで再度設定しようとしましたか? – Abhinav

0

私はこの同じ問題にAbhinavのソリューションを使用しているし、それは私が形状を作成するために使用したのと同じパラメータをuseing Basicly私 のために働いていたが、その後もう一度同じ形状を作成し、既存の形に色や境界を設定

関連する問題