Как ограничить минимальное увеличение до размера экрана в приложении Android, поддерживающем сенсорный экран? - PullRequest
1 голос
/ 19 марта 2011

Я использую код из «Hello Android» для реализации мультитач-экрана.Это позволяет перетаскивать жесты и масштабировать масштабирование.

Проблема с этой реализацией состоит в том, что изображение может стать очень маленьким или быть удаленным с экрана.Существует решение, которое позволяет ограничивать масштабирование и панорамирование (http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847). Ограничивает масштабирование, но до определенного размера. В приложении для Android-галереи минимальный размер для масштабирования составляет размер экрана.

Как этого добиться?

1 Ответ

1 голос
/ 19 марта 2011

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

Определите minScale (в соответствии с размером вида) и maxScale (в соответствии с исходным масштабом изображения), и перед изменением матрицы преобразования изображения проверьте, попадает ли окончательный масштаб в этот диапазон.

Вам придется применять один и тот же масштабный коэффициент как к ширине, так и к высоте, чтобы поддерживать одинаковое соотношение сторон.

- EDIT-- Поместите это на Github: https://github.com/a85/WebComicViewer/blob/master/src/com/rickreation/ui/ZoomableImageView.java

...