Мне нужно щелкнуть по определенному элементу на холсте, в то время как масштабирование и перемещение функций также позволяют использовать холст. Я могу вычислить положение прямоугольника при перемещении холста. Там я просто вычислил расстояние движения касания (CurrenTouchXPosition - StartXPosition).Получение определенной позиции в холсте после масштабирования андроида холста
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;
Это может определить новое положение холста прямоугольника. Это прекрасно работает. Я могу идентифицировать событие касания конкретного элемента при перемещении холста по этой логике. Но теперь мне нужно вычислить положение прямоугольника относительно холста, после увеличения холста. Каковы математики за масштабированием. Если кто-нибудь знает, пожалуйста, помогите в этом. Спасибо.