Android imageView матрица пользовательских координат - PullRequest
0 голосов
/ 10 июля 2019

У меня есть изображение, которое можно перетаскивать и масштабировать.

Это использует широко скопированный код, как здесь Увеличение и перетаскивание изображения в Android Я могу коснуться / перетащить / увеличить, и изображение изменится, как ожидалось.

Моя проблема заключается в переводе новой матрицы изображений в пользовательские координаты.

Может быть, это изображение может помочь. https://imgur.com/a/cUlzAuM

Черный прямоугольник - экран телефона. После касания и перетаскивания / увеличения изображение растягивается больше экрана до виртуального размера и положения синего прямоугольника.

В моей системе координат (рисует графику на основе внутренней системы координат), верхний левый угол экрана (xmin, ymin), а нижний правый - (xmax, ymax). Подумайте о графическом приложении, которое вы хотите увеличить в более мелкой области графика. Поэтому, когда изображение перетаскивается и масштабируется (что делает содержимое изображения размытым), мне нужно перерисовать содержимое с новыми координатами.

Как только размер изображения будет изменен на синий прямоугольник, мои координаты должны быть изменены на меньший красный прямоугольник. Это похоже на увеличение масштаба фотографии лица и увеличение масштаба рта, общая фотография увеличивается, но координаты увеличенных пикселей находятся в пределах области исходного изображения.

Я пробовал все виды хакерской математики для определения новых координат xmin, xmax, ymin, ymax, но результаты противоречивы. Иногда зум работает нормально, другие - неправильные координаты, и новое изображение, которое я рисую на основе xmin, ymin, xmax, ymax, находится в совершенно неправильном месте по сравнению с увеличенным изображением после перетаскивания и масштабирования.

Как только пользователь завершил перетаскивание и масштабирование, у меня есть матрица imageView из вызова imageView.getMatrix. Мне просто нужно знать, как использовать эту матрицу для изменения моих координат.

Надеюсь, это имеет смысл. Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...