ViewPager图片滑动与缩放实现

ViewPager 的图片滑动+缩放,真的是安卓项目里常见又实用的功能。你想实现那种左右滑动切图、双指缩放看细节的图片浏览效果?用 ViewPager 加上自定义 Adapter 就能搞定,配合个图片加载库,体验还能再上一档。

ViewPager 的适配器用起来挺灵活,核心是重写instantiateItem()destroyItem(),负责添加和移除页面。你只要维护一个图片列表,Adapter 里按position取图就行了。配合ImageView,图片能一张张地滑过去,看着挺顺滑。

图片缩放这块,建议用GestureDetector监听手势,再改ImageViewScaleXScaleY。配合ScaleType: FIT_CENTER,视觉上更自然。你也可以用第三方控件,像PhotoView,省事还稳定。

点击事件就更简单了,给ImageView加个OnClickListener,比如弹出个大图预览,或者显示图的啥的。交互性拉满。

性能优化别忽视。ViewPager 预加载左右页面,如果图太大容易 OOM。这里推荐用GlidePicasso,加载快、缓存稳,省心不少。网络图用Glide.with(context).load(url).into(imageView),顺手。

,如果你想复用逻辑,不妨封装个ZoomableViewPager,把滑动、缩放、点击都包进去,其他地方直接用,开发效率高多了。

如果你正好做图片浏览器或者图集类的功能,这套方案蛮适合,交互自然、扩展性强,移动端用户体验也能兼顾到。

rar
ViewPagerDemo.rar 预估大小:63个文件
folder
ViewPagerDemo 文件夹
file
.project 849B
file
project.properties 563B
folder
src 文件夹
folder
com 文件夹
folder
zpq 文件夹
folder
test 文件夹
file
Image.java 588B
file
MainActivity.java 2KB
file
MyViewPager.java 784B
file
MyPhotoView.java 487B
file
AndroidManifest.xml 867B
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
drawable-hdpi 文件夹
file
t3.png 19KB
file
ic_launcher.png 7KB
file
t4.png 17KB
file
t1.png 2KB
file
t2.png 3KB
folder
values-v11 文件夹
file
styles.xml 334B
folder
menu 文件夹
file
main.xml 362B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
layout 文件夹
file
fragment_main.xml 416B
file
activity_main.xml 328B
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
values-w820dp 文件夹
file
dimens.xml 381B
folder
values 文件夹
file
strings.xml 230B
file
styles.xml 697B
file
dimens.xml 220B
folder
values-v14 文件夹
file
styles.xml 391B
folder
.settings 文件夹
file
org.eclipse.jdt.core.prefs 177B
folder
assets 文件夹
folder
gen 文件夹
folder
com 文件夹
folder
zpq 文件夹
folder
test 文件夹
file
BuildConfig.java 154B
file
R.java 3KB
folder
libs 文件夹
file
android-support-v4.jar 607KB
file
library.jar 26KB
file
.classpath 475B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
bin 文件夹
file
resources.ap_ 79KB
folder
classes 文件夹
folder
com 文件夹
folder
zpq 文件夹
folder
test 文件夹
file
R$layout.class 422B
file
R$style.class 413B
file
R$dimen.class 443B
file
BuildConfig.class 333B
file
R$drawable.class 493B
file
R$attr.class 322B
file
MainActivity$ImageAdapter.class 3KB
file
MyPhotoView.class 742B
file
R$id.class 440B
file
MyViewPager.class 926B
file
R.class 613B
file
R$string.class 454B
file
R$menu.class 370B
file
MainActivity.class 2KB
file
Image.class 1KB
file
AndroidManifest.xml 867B
folder
dexedLibs 文件夹
file
android-support-v4-47c063656c493da2b4aa45203c834c7d.jar 227KB
file
annotations-265381d33336091b98caf2ea76a9ae2b.jar 943B
file
library-ee149772fc24a2ca406af83f239433b3.jar 13KB
file
jarlist.cache 120B
file
ViewPagerDemo.apk 324KB
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-hdpi 文件夹
file
t3.png 18KB
file
ic_launcher.png 6KB
file
t4.png 16KB
file
t1.png 1KB
file
t2.png 2KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 3KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 17KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 9KB
file
classes.dex 1.24MB
...
rar 文件大小:1.59MB