Мне нужно сопоставить координаты X, Y координат OnTouch с координатами Bitmap X, Y внутри ImageView, чтобы сделать это. Я использую следующий подход.
Однако этот подход работает, только когда я:
a) Полностью увеличьте изображение (полностью)
b) Работает в любом случае, если я делаю свое приложение на весь экран
final int index = event.getActionIndex();
touchLocation = new float[] {
event.getX(index), event.getY(index)
};
Matrix matrix = new Matrix();
ImageView view = getImageView();
view.getImageMatrix().invert(matrix);
matrix.postTranslate(view.getScrollX(), view.getScrollY());
matrix.mapPoints(touchLocation);
// touchLocation[0] is real x and [1] is real y
Однако моя активность - это действие ActionBar, так что я получаю немного неправильное положение по оси Y. Я попытался вычесть высоту ActionBar и StatusBar, но это не всегда работает.
Что странно, так это то, что на полноэкранном режиме неважно, полностью ли я увеличиваю изображение или получаю изображение. Я всегда получаю правильные координаты, рассчитанные, однако, с любым другим видом деятельности, это не будет правильно отображать точки.