Я работаю над изображением, создавая функцию, которая позволяет пользователю размещать теги на изображениях (например, тег фотографии Facebook). У меня есть масштабируемый ImageView (с использованием TouchImageView Майка Ортиса) в качестве фонового изображения и некоторые ImageViews в качестве тегов изображений.
Каждый тег имеет положение X и Y, и нет проблем с отображением как фонового изображения, так и тегов изображений в правильном положении. Однако, когда пользователь запускает масштабирование, положение фонового изображения изменяется. Это означает, что положение каждого тега изображения также должно быть изменено/обновлено в соответствии с уровнем масштабирования текущего фонового изображения и положением прокрутки.
В настоящее время я использую этот метод:
float currentZoom = mImageView.getCurrentZoom();
float zoomedX = x / currentZoom;
float zoomedY = y / currentZoom;
Но когда я попытался, все пошло не так. Может ли кто-нибудь помочь мне найти правильный метод/уравнение?
ИЗМЕНИТЬ:
Я пытался использовать Matrix.mapPoints(), но не понимаю, как эта матрица может помочь мне решить мою проблему. Вот изображение для лучшего объяснения:
float[] pts
дает мне[0] = -33.788258
и[1] = 4.5877075
. Можете ли вы объяснить эти значения? - person Harry   schedule 31.10.2014