이미지의 색상을 스펙트럼처럼 왼쪽에서 오른쪽으로 변경하고 색상이 변경 될 때이를 보려고합니다. 여기 내 코드가 있습니다. 문제는 변경되는 것입니다. 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