Android 以位图为背景在SurfaceView上绘制
在我的Android应用程序中,我有一个带有位图的图像视图。我想能够绘制矩形或徒手当用户触摸这个图像视图。我目前可以使用画布绘制这些形状。但是,如果我使用画布,我必须将图像视图中的位图复制到一个临时图像,然后按如下所示从中创建画布-Android 以位图为背景在SurfaceView上绘制,android,android-canvas,surfaceview,android-bitmap,Android,Android Canvas,Surfaceview,Android Bitmap,在我的Android应用程序中,我有一个带有位图的图像视图。我想能够绘制矩形或徒手当用户触摸这个图像视图。我目前可以使用画布绘制这些形状。但是,如果我使用画布,我必须将图像视图中的位图复制到一个临时图像,然后按如下所示从中创建画布- Bitmap bitmap = ((BitmapDrawable)closestImageView.getDrawable()).getBitmap(); //need to get the dimensions of scaled bitmap
Bitmap bitmap = ((BitmapDrawable)closestImageView.getDrawable()).getBitmap();
//need to get the dimensions of scaled bitmap
alteredBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(alteredBitmap);
paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(3);
//matrix.s
canvas.drawBitmap(bitmap, 0,0, paint);
closestImageView.setImageBitmap(alteredBitmap);
但是,在绘制之后,我想将图像(仅由用户绘制的矩形或手绘线)保存到新位图中。当前使用此画布方法时,它也会保存原始位图,因为它是画布的一部分。
从我所读到的,表面视图似乎是实现这一目标的正确方法?如何实现我想要的功能
谢谢
AG什么
SurfaceView
你是什么意思?我只在你的代码中看到ImageView
,我没有使用SurfaceView,只使用了ImageView。但我能实现只删除画布上绘制的线条的一部分而不删除图像视图上的背景的预期功能吗?我不知道yiu的意思,你的主要目标是什么?我想做的是——我有一个带有位图的图像视图。我希望能够在位图上绘制矩形,然后仅将这些矩形(而不是原始位图)保存到新位图中。我还想要一个功能,用户可以选择一个矩形并将其删除。编写一个自定义的视图
,然后,这是最简单的解决方案SurfaceView
是什么意思?我只在你的代码中看到ImageView
,我没有使用SurfaceView,只使用了ImageView。但我能实现只删除画布上绘制的线条的一部分而不删除图像视图上的背景的预期功能吗?我不知道yiu的意思,你的主要目标是什么?我想做的是——我有一个带有位图的图像视图。我希望能够在位图上绘制矩形,然后仅将这些矩形(而不是原始位图)保存到新位图中。我还想要一个功能,用户可以选择一个矩形并将其删除。编写一个自定义的视图
,然后,这是最简单的解决方案