Android使用SubsamplingScaleImageView完美查看超大图片
一、目标
在神马笔记中查看《溪山清远图》。
二、体验地址
神马笔记最新版本下载:【神马笔记 版本2.2.0——功能优化.apk】
三、实现方案
1. SubsamplingScaleImageView
在《Android加载超大图片》一文中,我们已经介绍过SubsamplingScaleImageView
的基础用法。
这里结合SubsamplingScaleImageView
的功能来提高图片浏览体验。
2. OnStateChangedListener
使用OnStateChangedListener
可以监听到SubsamplingScaleImageView
的缩放和移动事件。
2D图片有3个维度的操作:
- 位置——移动图片
- 大小——缩放图片
- 角度——旋转图片
SubsamplingScaleImageView
不支持第3个维度——角度。
因此只有移动和缩放2个事件。
通过OnStateChangedListener
,我们可以实现当用户进行缩放或者移动,或者2者同时发生时,自动全屏。
全屏之后,图片变不会被菜单栏所遮挡,可以看到全部图片。
/**
* An event listener, allowing activities to be notified of pan and zoom events. Initialisation
* and calls made by your code do not trigger events; touch