Android 如何在imageview中对位图图像应用撤消操作。我想撤消效果
我正在图像视图中对位图图像应用不同的效果。此图像来自mainactivity 代码如下:Android 如何在imageview中对位图图像应用撤消操作。我想撤消效果,android,Android,我正在图像视图中对位图图像应用不同的效果。此图像来自mainactivity 代码如下: Bundle extras=getIntent().getExtras(); //b=(Bitmap)extras.get("img"); byte[] byteArray=extras.getByteArray("img"); bmp=BitmapFactory.decodeByteArray(byteArray, 0, byteArray.le
Bundle extras=getIntent().getExtras();
//b=(Bitmap)extras.get("img");
byte[] byteArray=extras.getByteArray("img");
bmp=BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
camphoto=(ImageView)findViewById(R.id.camimage);
camphoto.setImageBitmap(bmp);
和这样的效果:
case R.id.btnsepia:
BitmapDrawable abmp = (BitmapDrawable)camphoto.getDrawable();
bmp = abmp.getBitmap();
Bitmap bmOut=Bitmap.createBitmap(createSepiaToningEffect(bmp, 3, .89, .66, .5));
camphoto.setImageBitmap(bmOut);
break;
现在我想撤销效果,以便在图像视图中恢复原始图像。这是不可能的
位图对象不会自动记录应用于它的所有更改,因此您可以调用类似于bitmap.undo()的东西代码>。即使这是可能的,它也无法工作,因为您正在从源图像生成一个具有此效果的全新位图。原始图像不再包含在新图像中
您必须自己跟踪更改。也许只需将原始图像和修改后的图像传递给Intent即可满足您的需要。我像这样解决了R.id.btnundo:camphoto.setImageBitmap(bmp);打破简略n简单:p:p(我猜是坏习惯:)