我必须裁剪位图图像。为此,我正在使用
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位置无效。
我搜索了很好的文档。但我不能。
先谢谢
这里有什么问题以及如何解决?
答案 0 :(得分:12)
基本上,您的问题来自于您创建位图的事实。你没有放任何东西。然后创建一个较小的位图,然后将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();