Android多点触控图片缩放与平移Demo

Android 的多点触控操作一直是个挺有意思的点子,是在做图片类的交互时,用两个手指缩放移动,体验确实更自然。《PhotoWallFallsDemo》这个项目就专门演示了图片的缩放和平移,逻辑清晰,代码也挺好上手的。

项目里用了GestureDetectorScaleGestureDetector两个手势检测器,前者负责滑动、点击这些单点操作,后者专管双指缩放。两个配合起来,触控事件还挺顺的。

像图片缩放,就是在onScale()里拿到scaleFactor,去更新ImageViewscaleXscaleY。平移的话,就靠ACTION_MOVE,动态计算手指的偏移量,直接改translationXtranslationY就行。

这里有个细节值得注意——想保持图片缩放时不偏离中心,要考虑锚点问题,根据缩放比例调一下坐标,效果会自然多。性能方面也别忽视,像开启android:hardwareAccelerated="true"这种优化,滑动会更流畅。

哦对了,如果你图片太大,还可以提前用Bitmap.createScaledBitmap()压缩一下,内存也能省不少。,PhotoWallFallsDemo这个例子比较基础,适合做图片查看器、相册、或者地图类应用的触控交互起步。

如果你正在折腾onTouchEvent()、手势识别这些东西,不妨直接扒一下它的代码,改一改就能跑,效率高得多。

rar 文件大小:1.37MB