想画两层ImageView,大小相同且完全重叠,上面那一层需要背景透明这样就可以看到下面那一层,因为要分层操作,所以两层图片不能都画在一个图片上。上面的一层图片,只有背景是透明的,上面画的图像不是透明的。现在想要对上面的这层图像重绘,但是要保证背景透明,这样一来问题就来了,如果绘制的图像能完全覆盖原来的图像,就没有问题,但如果是新绘制的图像不能完全覆盖原来的图像的话,就会看到没被遮盖的圆图像的部位。例如,
canvas_A = new Canvas(bitmap_A);   //下面的一层
canvas_B = new Canvas(bitmap_B);   //上面的一层paint_backgroud.setColor(Color.WHITE);
paint_backgroud.setAlpha(0);    //背景画笔设为透明
paint.setColor(Color.RED);canvas_A.drawColor(Color.BLUE);
canvas_B.drawRect(0, 0, bitmap_B.getWidth(), bitmap_B.getHeight(), paint_background);
canvas_B.drawCircle(100, 100, 50, paint);
以上是画出的是最初的图像,分别放在imageView_A和imageView_B中,接下来想重绘上面B层的图像。如果不需要透明的话,我直接照背景颜色重画一遍bitmap_B大小的矩形,把原来的圆盖掉就好了。但是如果需要透明的话,重画背景就无法实现了。因为透明的图像不能盖掉原来的图像,原来的图像会一直存在。就用上面的例子来说,要用重绘的方式来实现缩小或是移动上面B层的圆,就要给bitmap_B清空,才能不受原图像的影响。照我的方法,就是释放原来的bitmap,用新建的bitmap来替换掉,但这不是清空bitmap,而且操作频繁的话,系统负担会很大。所以想请教,有没有清空Bitmap的方法?因为一些功能限制的原因,不能使用Matrix