如何在android中保存图形的一部分?

如何在android中保存图形的一部分?,android,canvas,Android,Canvas,我正在尝试开发一个绘图应用程序,它有一个让用户裁剪和共享绘图的功能mBitmap是我用来创建Canvas的 mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); 我设法保存了用户绘制的内容,但我不知道如何裁剪背景。因此,我创建了一个新的画布,并 Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB

我正在尝试开发一个绘图应用程序,它有一个让用户裁剪和共享绘图的功能
mBitmap
是我用来创建
Canvas

mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
我设法保存了用户绘制的内容,但我不知道如何裁剪背景。因此,我创建了一个新的
画布
,并

Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);

canvas.drawBitmap(mBitmap, 0, 0, null); 

crop = Bitmap.createBitmap(bitmap, 
            mRect.left,
            mRect.top,
            mRect.width(),
            mRect.height());

saveCropScreenShot(crop));

上面用裁剪区域保存图形,但缺少背景。我的应用程序允许用户更改背景,因此将图形和背景一起保存更有意义。有人能帮忙吗?谢谢

你是否考虑过在保存时“添加”你的背景?嗯,我不太确定怎么做。我试图获取背景,然后在绘制
mBitmap
之前重新绘制它,但当我调用
getBackground()
时,它会给我原始图像的宽度和高度与用户在屏幕上看到的不同。您可能应该解释一下如何设置背景。如果你让系统为你缩放它-如果你想让它看起来和用户看到的一样,你需要缩放它。我不缩放它。我只做background=“@drawble/background”。我不认为这是裁剪背景的正确方法…缩放到用户看到的东西,然后捕捉一个区域,听起来裁剪需要做很多工作。