我试图让用户触摸图像,然后基本上会显示一个圆形放大镜,这将允许用户更好地选择图像上的某个区域。当用户释放触摸时,放大的部分将消失。这用于几个照片编辑应用程序,我正在尝试实现我自己的版本。我下面的代码确实放大了图像视图的圆形部分,但一旦我松开手指,就不会删除或清除缩放。我目前使用将位图设置为画布canvas = new Canvas(bitMap);
,然后使用takenPhoto.setImageBitmap(bitMap);
我不确定我是否以正确的方式进行操作。onTouch 代码如下:
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;
}
});