Bitmap.createBitmap(Bitmap source,int x,int y,int width,int height)返回错误的位图

Ash*_*man 7 android image

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

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);
Run Code Online (Sandbox Code Playgroud)

但它会切割位图的底部和右侧.位图的顶部和左侧部分存在于输出中.这意味着x和y位置无效.

我搜索了一个很好的文档.但我不能.

提前致谢

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

Goz*_*Goz 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();
Run Code Online (Sandbox Code Playgroud)