У меня есть изображение, которое можно перетаскивать и масштабировать.
Это использует широко скопированный код, как здесь
Увеличение и перетаскивание изображения в Android
Я могу коснуться / перетащить / увеличить, и изображение изменится, как ожидалось.
Моя проблема заключается в переводе новой матрицы изображений в пользовательские координаты.
Может быть, это изображение может помочь.
https://imgur.com/a/cUlzAuM
Черный прямоугольник - экран телефона.
После касания и перетаскивания / увеличения изображение растягивается больше экрана до виртуального размера и положения синего прямоугольника.
В моей системе координат (рисует графику на основе внутренней системы координат), верхний левый угол экрана (xmin, ymin), а нижний правый - (xmax, ymax). Подумайте о графическом приложении, которое вы хотите увеличить в более мелкой области графика. Поэтому, когда изображение перетаскивается и масштабируется (что делает содержимое изображения размытым), мне нужно перерисовать содержимое с новыми координатами.
Как только размер изображения будет изменен на синий прямоугольник, мои координаты должны быть изменены на меньший красный прямоугольник. Это похоже на увеличение масштаба фотографии лица и увеличение масштаба рта, общая фотография увеличивается, но координаты увеличенных пикселей находятся в пределах области исходного изображения.
Я пробовал все виды хакерской математики для определения новых координат xmin, xmax, ymin, ymax, но результаты противоречивы. Иногда зум работает нормально, другие - неправильные координаты, и новое изображение, которое я рисую на основе xmin, ymin, xmax, ymax, находится в совершенно неправильном месте по сравнению с увеличенным изображением после перетаскивания и масштабирования.
Как только пользователь завершил перетаскивание и масштабирование, у меня есть матрица imageView из вызова imageView.getMatrix. Мне просто нужно знать, как использовать эту матрицу для изменения моих координат.
Надеюсь, это имеет смысл. Кто-нибудь может помочь?