0
我需要单击画布上的特定项目,同时缩放和移动功能也为画布启用。我可以在移动画布时计算矩形的位置。在那里,我只是通过(CurrenTouchXPosition - StartXPosition)来计算触摸移动距离。放大画布后在画布上获取特定位置android
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
int x = (int) event.getX();
int y = (int) event.getY();
float moveOffsetX = (event.getX() - start.x);
float moveOffsetY = (event.getY() - start.y);
然后,
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
mode = DRAG;
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "action up");
secondRectUpperX = secondRectUpperX + moveOffsetX;
secondRectBottomX = secondRectBottomX + moveOffsetX;
secondRectUpperY = secondRectUpperY + moveOffsetY;
secondRectBottomY = secondRectBottomY + moveOffsetY;
这可以识别矩形的新画布位置。这工作完美。通过此逻辑移动画布时,我可以识别特定项目的触摸事件。 但是现在我需要在放大画布之后计算相对于画布的矩形位置。什么是变焦背后的数学。如果有人知道,请在这帮助。 谢谢。