画像の色をスペクトルのように左から右に変更し、色の変化が変わっているのを見たいのですが、これは私のコードです。 buttomをクリックして元のイメージから最終的なイメージに変更する方法がわからないので、変更が反映されるように変更を確認することができます。画像の色が左から右に滑らかに変化する
final ImageView imgView = (ImageView) findViewById(R.id.imageView);
Button btn = (Button) findViewById(R.id.button1);
Bitmap bitmap = ((BitmapDrawable) imgView.getDrawable()).getBitmap();
final Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
for(x = 0; x < mutableBitmap.getWidth() ; x++){
runOnUiThread (new Thread(new Runnable() {
public void run() {
try {
for(int y = 0; y < mutableBitmap.getHeight() ; y++){
int c = mutableBitmap.getPixel(x, y);
mutableBitmap.setPixel(x, y, Color.rgb(Color.red(c), (200 - Color.green(c)), Color.blue(c)));
Log.d("IMAGE", ""+x);
}
imgView.setImageBitmap(mutableBitmap);
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}));
}
}
});
[色グラデーション](https://en.wikipedia.org/wiki/Color_gradient)のような意味ですか? – CommonsWare
はい、たとえば白で始まり、緑で連続して終了します。 –
独自のビットマップをアセンブルするのではなく、 'GradientDrawable'を使うことを検討してください。 – CommonsWare