Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以位图为背景在SurfaceView上绘制_Android_Android Canvas_Surfaceview_Android Bitmap - Fatal编程技术网

Android 以位图为背景在SurfaceView上绘制

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

在我的Android应用程序中,我有一个带有位图的图像视图。我想能够绘制矩形或徒手当用户触摸这个图像视图。我目前可以使用画布绘制这些形状。但是,如果我使用画布,我必须将图像视图中的位图复制到一个临时图像,然后按如下所示从中创建画布-

 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的意思,你的主要目标是什么?我想做的是——我有一个带有位图的图像视图。我希望能够在位图上绘制矩形,然后仅将这些矩形(而不是原始位图)保存到新位图中。我还想要一个功能,用户可以选择一个矩形并将其删除。编写一个自定义的
视图
,然后,这是最简单的解决方案