Первоначально я написал приложение на планшете Samsung Android 4.4 для отображения точек в пользовательском ImageView. Я бы измерял точки в реальном мире в метрах и масштабировал их до размеров ImageView, чтобы отобразить их. Синие точки - это точки интереса, которые масштабируются и отображаются их расстоянием до исходной точки красным цветом. У меня есть зеленая точка, вращающаяся вокруг исходной точки, также масштабированная, и это единственное, что меняется в ImageView. Красные и синие точки были нарисованы только один раз с использованием метода canvas.drawCircle (), но зеленая точка на орбите постоянно перерисовывается при перемещении, а ее предыдущая позиция рисуется чистой точкой.
Вот снимок без каких-либо жестовых манипуляций с ImageView или растровым изображением
В пользовательском ImageView реализованы жесты перетаскивания, поворота и масштабирования.
Проблема в том, что на планшете Android 4.4 масштабирование, вращение или панорамирование не приводят к отклонению орбитальной зеленой точки от масштаба. Это было бы идеально на орбите независимо от изменений матрицы, которые прошла битовая карта. Но при использовании того же кода на планшете Android 9.0 с аналогичным размером экрана зеленая орбитальная точка больше не масштабируется. Если я масштабирую, панорамирую или поворачиваю, зеленая точка вращается только вокруг одной точки в растровом изображении, в то время как исходная точка и другие точки отлично масштабируются с помощью жестов. Я пробовал много разных вещей, включая применение масштаба увеличения и панорамирования дельт к точке, но это не работает как намерение.
Снимок растрового изображения с увеличенным жестом
Кто-нибудь сталкивался с изменениями поведения кода в отношении растровых изображений и ImageViews после обновления до более поздней версии Android?
PS Используя корпоративный код, вы не можете свободно делиться им. Единственное, что изменилось, это Android версия.