我想让用户触摸图像,然后基本上一个圆形放大镜会显示,这将允许用户更好地选择图像上的某个区域。当用户释放触摸时,放大的部分将消失。这用于几个照片编辑应用程序,我试图实现我自己的版本。下面的代码确实放大了图像视图的圆形部分,但是一旦松开手指就不会删除或清除缩放。我目前使用canvas = new Canvas(bitMap);
将位图设置为画布,然后使用takenPhoto.setImageBitmap(bitMap);
设置图像视图。我不确定我是否以正确的方式进行操作。 onTouch代码如下:Android - 如何循环缩放/放大图像的一部分?
zoomPos = new PointF(0,0);
takenPhoto.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
shader.setLocalMatrix(matrix);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_MOVE:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_UP:
//clear zoom here?
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
});
我不知道我的理解对不对,但你问如何清除变焦效果在图像上?为什么不将原始图像保存在单独的位图中。当用户使用缩放并且是时候摆脱放大镜效果时,请使用原始位图并在画布上重新绘制它,从而使用缩放来擦除图像。 –
不,我没有得到imageview的放大圆。你会在代码工作的地方分享更多或上课的内容吗? –
我也有需要放大图像在画廊中心的透明覆盖帧,以便哪些图像经过,得到放大,请建议 – Ravi