41

私はそのようなタイプのプロジェクトを行っています。私のプロジェクトでは、画像の色を動的に変更します。

ユーザーがこの画像をクリックすると、画像の色が動的に緑色に変わります。

ここに画像の説明を入力

グーグルと他のドキュメントが続きますが、私は私の問題を解決していません。

私を助けてください、私の問題を解決する方法や文書はありますか?

4

6 に答える 6

57

これを行う方法は次のとおりです。リソース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);
于 2013-01-08T05:08:32.647 に答える
15
imageView.setImageResource(R.drawable.ic_person_black_48dp);

imageView.setColorFilter(imageView.getContext().getResources().getColor(R.color.desired_color), PorterDuff.Mode.SRC_ATOP);
于 2015-12-12T07:23:14.777 に答える
3

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);
于 2018-02-07T12:56:13.840 に答える
0

正方形を描く直前に、これを OnDraw に入れます。

if (userclicked){
paint.setColor(Color.GREEN);
} else {
paint.setColor(Color.BLACK);
}

もちろん、それは canvas.drawRect(x0,y0,x1,y1,paint) で描画している場合です。これは、そのような単純な形状を描画している場合です。

于 2013-01-08T04:51:35.483 に答える