В идеале вы хотели бы ограничить ширину и высоту изображения в границах просмотра.Вы можете получить границы, используя метод onSizeChanged в своем пользовательском представлении.
Определите minScale (в соответствии с размером вида) и maxScale (в соответствии с исходным масштабом изображения), и перед изменением матрицы преобразования изображения проверьте, попадает ли окончательный масштаб в этот диапазон.
Вам придется применять один и тот же масштабный коэффициент как к ширине, так и к высоте, чтобы поддерживать одинаковое соотношение сторон.
- EDIT-- Поместите это на Github: https://github.com/a85/WebComicViewer/blob/master/src/com/rickreation/ui/ZoomableImageView.java