我想像一个光谱一样从左到右改变图像的颜色,并看到颜色的变化,这是我的代码,问题是它从原始图像变为最终图像后点击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();
}
}
}));
}
}
});
答案 0 :(得分:1)
我不是专家,但我认为你可以尝试选择你想要的颜色:
int[] colors = {0xFFFFFFFF, 0xFFFF0000, 0xFF00FF00}
这是为了应用它们:
mutableBitmap.setPixel(x, y, new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, colors);
希望有所帮助
答案 1 :(得分:1)
您可以右键单击您的drawable文件夹,选择New \ Drawable resource file。选择文件的名称,然后单击“确定”。 之后,您可以添加以下代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="135"
android:centerColor="@color/colorAccent"
android:endColor="@color/colorPrimaryDark"
android:startColor="@color/colorPrimary"
android:type="linear" />
您可以从color.xml创建新颜色并使用它们。然后在java代码中:
imageView.setImageDrawable(getResources().getDrawable(R.drawable.YOURDRAWABLENAME));