8

我必须裁剪位图图像。为此,我正在使用

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565);
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100);
bitmap.recycle();
Canvas canvas = new Canvas(result);
imgView.draw(canvas);

但它会切割位图的底部和右侧。位图的顶部和左侧部分存在于输出中。这意味着 x 和 y 位置没有影响。

我正在寻找好的文档。但我做不到。

提前致谢

这里有什么问题以及如何解决?

4

1 回答 1

13

基本上,您的问题源于您创建位图这一事实。你没有在里面放任何东西。然后,您创建一个较小的位图,然后将 imageView 渲染到该较小的位图。

这会切断底部 100 像素和右侧 20 像素。

您需要创建大位图。将 imageview 数据添加到该位图。然后调整它的大小。

以下代码应该可以工作:

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
imgView.draw(canvas);
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100);
bitmap.recycle();
于 2012-10-12T09:27:13.593 回答