【发布时间】:2017-01-07 13:36:11
【问题描述】:
我想像光谱一样从左到右改变图像的颜色,并看到颜色的变化,这是我的代码,问题是它从原始图像变为最终图像后单击按钮,但我不知道如何更改它,因此我可以看到更改的变化。
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();
}
}
}));
}
}
});
【问题讨论】:
-
你的意思是像color gradient吗?
-
是的,例如它以白色开始并以绿色连续结束。
-
考虑使用
GradientDrawable,而不是组装自己的位图。 -
是的,但问题是我希望颜色从左到右移动,就像刷一个电话一样。实际上我应该这样做是为了在手机上滑动接听电话,例如三星手机上常见的事情。