Android 在位图上制作透明画布
我有两个ImageView,一个用于画布,另一个用于ImageBackground ImageView具有屏幕的大小 当我触摸屏幕时,我需要重新绘制画布,如示例所示:Android 在位图上制作透明画布,android,canvas,transparent,Android,Canvas,Transparent,我有两个ImageView,一个用于画布,另一个用于ImageBackground ImageView具有屏幕的大小 当我触摸屏幕时,我需要重新绘制画布,如示例所示: private void reDraw() { Display display = getWindowManager().getDefaultDisplay(); bmOverlay = Bitmap.createBitmap(display.getWidth(), display.getHeight(),
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);
}
但是,在这个例子中,当我触摸屏幕时,我重新绘制了位图。我需要重画一个透明画布,因为我不需要在背景上重画位图,因为位图永远不会改变。但是如果我不重新绘制位图,背景将保持黑色,位图将保持在背面。有什么帮助吗?检查以确保您创建的覆盖位图实际上是透明的。 使用config ARGB_8888显式创建它。
您可能希望将位图的创建移出重画方法,只创建一次。检查以确保您创建的覆盖位图实际上是透明的。 使用config ARGB_8888显式创建它。
您可能希望将位图的创建移出重画方法,只创建一次。但另一方面,我认为每次都绘制背景图像并不重要。当屏幕刷新时,它总是被绘制出来。但另一方面,我认为每次都绘制背景图像并不重要。当屏幕刷新时,它将始终以任何方式绘制。