Операции матрицы просмотра изображений Android - PullRequest
0 голосов
/ 24 января 2011


Я использовал imageview для отображения изображения.
Я установил тип шкалы как ScaleType.MATRIX
Есть опция для scaling (zooming), dragging и все. Все это делается с помощью матричных манипуляций в основном postTranslate и postScale
Моя проблема сейчас это можно перетащить так, что изображение не на экране
Так, как мы получаем, сколько это перетаскивается.
Вкратце
У меня есть две матрицы (android.graphics.Matrix), одна на начальной стадии, а другая, которую я получил после перетаскивания и масштабирования. Теперь из этих 2-х матриц я хочу вычислить сколько он сдвинулся в направлении x и y?
Какую матричную операцию мне нужно сделать здесь.
Спасибо

Ответы [ 2 ]

1 голос
/ 26 января 2011

Вы можете получить массив значений матрицы с помощью функции getValues. 2-е (Matrix.MTRANS_X) и 5-е (Matrix.MTRANS_Y) значения матрицы являются переходами в направлениях x и y.

http://developer.android.com/reference/android/graphics/Matrix.html

0 голосов
/ 19 мая 2012

Вам нужно применить матрицу, чтобы получить преобразованные координаты.У класса Matrix есть несколько методов, которые передадут вам преобразованные координаты.

Посмотрите

  • mapPoints
  • mapVectors
  • mapRect

Когда у вас есть точки (исходные и преобразованные), вы можете легко рассчитать расстояние, используя евклидово расстояние .

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