所以,我正在使用这个库https://github.com/thuytrinh/android-collage-views为我的ImageView添加“MultiTouchListener”功能。基本上,我允许用户使用旋转、缩放和平移来修改照片以满足他的需求。现在唯一的问题是如何保存它。我是这样做的:
Bitmap bitmap = Bitmap.createBitmap(imageContainer.getWidth(), imageContainer.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
imageContainer.draw(canvas);
代码可以正常运行,但是由于图片大小与手机屏幕分辨率相关,导致图片不够大。我想对给定的位图进行完整尺寸的变换,并且希望变换后的图片看起来像在屏幕上一样(因此需要裁剪屏幕外的所有内容)。
我尝试了以下方法:
Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(Color.WHITE);
Paint paint = new Paint();
paint.setAntiAlias(true);
canvas.drawBitmap(image, imageView.getMatrix(), paint);
但是它看起来不像预期那样。
用户屏幕:
输出图像(没有裁剪,因为我不知道应该从哪一侧进行裁剪):
怎样才能解决这个问题?有什么解决方法吗?
fitStart
),这可能是因为ImageView#getMatrix()
仅包含视图的变换,而不包括视图内部的可绘制对象。稍后我会给您发布一些代码。还要注意adjustViewBounds="true"
。 - meynety