Как ограничить минимальное увеличение до размера экрана в приложении Android, поддерживающем мультитач?
Я использую код из "Hello Android" для реализации мультитач-экрана. Это позволяет перетаскивать жест и масштабировать масштабирование.
Проблема с этой реализацией состоит в том, что изображение может стать очень маленьким или быть удаленным с экрана. Существует решение, которое позволяет ограничивать масштабирование и панорамирование (http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-жест /1847). Это ограничивает масштабирование, но до определенного размера. В приложении Android Gallery минимальный размер для увеличения - это размер экрана.
Как этого добиться?
1 ответ
В идеале вы хотели бы ограничить ширину и высоту изображения в границах просмотра. Вы можете получить границы, используя метод onSizeChanged в своем пользовательском представлении.
Определите minScale (в соответствии с размером представления) и maxScale (в соответствии с исходным масштабом изображения), и перед изменением матрицы преобразования изображения проверьте, попадает ли окончательный масштаб в этот диапазон.
Вам придется применять один и тот же масштабный коэффициент к ширине и высоте, чтобы поддерживать одинаковое соотношение сторон.
--EDIT-- Поставил это на Github: https://github.com/a85/WebComicViewer/blob/master/src/com/rickreation/ui/ZoomableImageView.java