在android中准确高效地旋转和裁剪位图
我正在编写一个android应用程序。通过使用它,用户可以裁剪位图图像。但我想添加更多功能,即在裁剪之前旋转图像。 为了达到这个目的,我遵循了以下步骤在android中准确高效地旋转和裁剪位图,android,bitmap,Android,Bitmap,我正在编写一个android应用程序。通过使用它,用户可以裁剪位图图像。但我想添加更多功能,即在裁剪之前旋转图像。 为了达到这个目的,我遵循了以下步骤 构建自定义视图 已初始化BitmapDrawable()和裁剪矩形(Rect())[该矩形确定在位图中复制的位置] 覆盖两个函数的onTouch(MotionEvent)方法 a。用户可以在屏幕上移动位图 b。用户可以变换裁剪矩形 重写onDraw(Canvas)方法以更新屏幕。此代码用于显示位图 bitmap_drawable.draw(c
BitmapDrawable()
和裁剪矩形(Rect()
)[该矩形确定在位图中复制的位置]- a。用户可以在屏幕上移动位图
- b。用户可以变换裁剪矩形
bitmap_drawable.draw(canvas,_bitmap_paint);
onDraw(canvas)
方法中旋转画布
canvas.rotate(_angle);
但它会使屏幕上的所有东西(包括裁剪矩形)旋转
问题:2
初始化我自己的Canvas()
对象以绘制位图是否明智
注:
在这里,我想要的旋转非常精确,最高可达1度,由两个手指旋转手势执行,因此性能非常重要,下面的代码(使用矩阵)很糟糕
因此,我认为初始化一个单独的Canvas()
并使用Canvas.rotate(_degree)
是非常合适的。但是,这使得控制触摸事件非常困难。有什么想法吗?请帮助Bitmap _new_bitmap = Bitmap.createBitmap( _old_bitmap, _cropRectx, _cropRecty, _cropRectWidth, _cropRectHeight, null);
但是在这里,从一个旋转的位图,我如何通过交叉裁剪矩形克隆颜色字节
问题:2
如何裁剪旋转位图这个问题可能太长,但它只包含两个问题:(i)显示旋转度不超过1的旋转位图的最佳方式是什么?(ii)如何裁剪旋转位图?有任何答案吗?请帮助。
Bitmap _new_bitmap = Bitmap.createBitmap( _old_bitmap, _cropRectx, _cropRecty, _cropRectWidth, _cropRectHeight, null);