图片缩放
图片缩放控件位于CoreLibs下views.zoom.ZoomImageView. ZoomImageView的代码基本上均是参考Android 手势检测实战 打造支持缩放平移的图片预览效果. 想要了解原理可以去拜读一下上面的文章.
图片缩放功能一般是用于展示类APP使用, 如电商中的商品的图片, 社交中的用户朋友圈图片等等. 效果如下图:

从效果图可以看到, 这是一个Activity, 里面包含了一个ViewPager, ViewPager包含了用户想看到的图片, 图片可以缩放. 并且单击图片可以回到上一页. 由于此界面的功能都一样, 只是样式有略微差别, 因为我们可以写一个公共的Activity, 并提供一些可配置的效果, 即MultiZoomImageActivity. 此类与ZoomImageView位于同一包下.
MultiZoomImageActivity的默认效果如下:

基本使用
首先来看看默认效果的使用方法.
声明
在主模块的AndroidManifest的application节点中, 添加如下代码:
跳转
在需要跳转至MultiZoomImageActivity的地方添加如下代码:
只需上述两个步骤就可以使用MultiZoomImageActivity. 接下来看看MultiZoomImageActivity的getLaunchIntent方法:
具体参数说明如下:
Context context 上下文
List images 图片地址集合, 请使用网络图片地址
int position 设置初始显示第几张图片
自定义样式
MultiZoomImageActivity提供6个自定义选项:
接着我们可以在AndroidManifest中的activity节点中加入theme属性:
以下是mzi_indicator样式:
请注意需要加上parent="@style/AppBaseTheme", 以保持其他基本样式与其他的Activity一样. drawable mzi_indicator的样式:
小圆点如果处于选中状态就会被设置成selected. 所以此处可以使用selector来为小圆点设置不同的状态. 当然, 虽然我习惯叫指示器为小圆点, 指示器也是可以为其他形状的, 如矩形, 圆角等.
加上此样式之后的效果:

缺陷
当然MultiZoomImageActivity也是有缺陷需要改进的, 比如背景只能设置颜色, 不能设置图片或者drawable, 如果需要背景虚化还需要另外去实现. 加载图片的时候没有加载框, 还有图片放大超出屏幕大小之后快速滑动不跟手, 这是ZoomImageView的问题. 这些问题都是需要去优化完善的.
Last updated
Was this helpful?