我有2个ImageViews,1个用于Canvas,其他用于ImageBackground。
ImageViews具有屏幕大小。
当我触摸屏幕时,我需要像示例一样重绘Canvas:
private void reDraw() {
Display display = getWindowManager().getDefaultDisplay();
bmOverlay = Bitmap.createBitmap(display.getWidth(), display.getHeight(), oBitmap.getConfig());
oCanvas = new Canvas(bmOverlay);
//I need to erase this line
oCanvas.drawBitmap(bmpBackGround, new Matrix(), null);
//this code paint some bitmaps on the canvas
for (ColorBall ball : colorballs) {
oCanvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), null);
}
//set the canvas on the image view
getImageView2().setImageBitmap(bmOverlay);
}
但是,在这个例子中,当我触摸屏幕时,我重绘了Bitmap。我需要重绘一个透明的Canvas,因为我不需要在背景上重绘Bitmap,因为位图永远不会改变。但是如果我不重绘位图,背景会保持黑色并且位图保持在背面。有什么帮助吗?
答案 0 :(得分:0)
检查以确保您创建的叠加位图实际上是透明的。 使用配置ARGB_8888明确创建它。 http://developer.android.com/reference/android/graphics/Bitmap.Config.html
您可能希望将位图的创建移出reDraw方法,而只是创建一次。