私はそのようなタイプのプロジェクトを行っています。私のプロジェクトでは、画像の色を動的に変更します。
ユーザーがこの画像をクリックすると、画像の色が動的に緑色に変わります。
グーグルと他のドキュメントが続きますが、私は私の問題を解決していません。
私を助けてください、私の問題を解決する方法や文書はありますか?
私はそのようなタイプのプロジェクトを行っています。私のプロジェクトでは、画像の色を動的に変更します。
ユーザーがこの画像をクリックすると、画像の色が動的に緑色に変わります。
グーグルと他のドキュメントが続きますが、私は私の問題を解決していません。
私を助けてください、私の問題を解決する方法や文書はありますか?
これを行う方法は次のとおりです。リソースxmlファイルから色を取得しています。
<resources>
<color name="new_color">#FFAAAAAA</color>
</resources>
アクティビティ .java ファイルで:
import android.graphics.PorterDuff.Mode;
Resources res = context.getResources();
final ImageView image = (ImageView) findViewById(R.id.imageId);
final int newColor = res.getColor(R.color.new_color);
image.setColorFilter(newColor, Mode.SRC_ATOP);
それをクリアするには、次のように呼び出します。
image.setColorFilter(null);
imageView.setImageResource(R.drawable.ic_person_black_48dp);
imageView.setColorFilter(imageView.getContext().getResources().getColor(R.color.desired_color), PorterDuff.Mode.SRC_ATOP);
XML では、ImageView の background タグではなく src を使用します。Javaコードで-
import android.graphics.PorterDuff.Mode;
final Context context=this;
home1=(ImageView) findViewById(R.id.home1);
Resources res = context1.getResources();
final int newColor = res.getColor(android.R.color.black);
home1.setColorFilter(newColor, Mode.SRC_ATOP);
正方形を描く直前に、これを OnDraw に入れます。
if (userclicked){
paint.setColor(Color.GREEN);
} else {
paint.setColor(Color.BLACK);
}
もちろん、それは canvas.drawRect(x0,y0,x1,y1,paint) で描画している場合です。これは、そのような単純な形状を描画している場合です。