Android自定义缩放ImageView
支持手势缩放的自定义 ImageView,在图片浏览场景下真挺实用的。系统默认的 ImageView 功能太基础了,想实现两指缩放、滑动查看细节?还得靠自己写。
用ScaleGestureDetector
配合GestureDetector
来缩放和平移手势,识别准确,响应也快。缩放操作其实就是改Matrix
的 scale 和 translate 值,Android 自带的Matrix
类就能搞定,省事。
重写onDraw()
方法,把修改后的Matrix
应用到 Canvas 上,配合drawBitmap()
,图片缩放、平移都能自然过渡。哦对,onTouchEvent()
别忘了,把触摸事件交给手势检测器就行。
想要交互更顺滑点?加个ValueAnimator
,做个缩放过渡动画,效果还挺惊艳的。还有边界检查也要做,图片可不能随便飘出控件范围,体验一塌糊涂。
遇上大图加载,可以设inSampleSize
来优化内存。硬件加速开一下,渲染速度提升不止一点半点。要是用户旋转屏幕,还得记得保存Matrix
状态,用onSaveInstanceState()
和onRestoreInstanceState()
搞定。
照片查看、地图浏览这类场景用得上这个控件。如果你也在做类似项目,写个自己的ZoomImageView
,比网上扒的库靠谱多了,维护也方便。
com.zhuxiaohao.zoomimageview_01.zip
预估大小:47个文件
com.zhuxiaohao.zoomimageview_01
文件夹
bin
文件夹
classes.dex
802KB
res
文件夹
crunch
文件夹
drawable-hdpi
文件夹
ic_launcher.png
6KB
drawable-xhdpi
文件夹
ic_launcher.png
9KB
drawable-xxhdpi
文件夹
...
1.99MB
文件大小:
评论区