Android多点触控图片缩放与平移Demo
Android 的多点触控操作一直是个挺有意思的点子,是在做图片类的交互时,用两个手指缩放移动,体验确实更自然。《PhotoWallFallsDemo》这个项目就专门演示了图片的缩放和平移,逻辑清晰,代码也挺好上手的。
项目里用了GestureDetector和ScaleGestureDetector两个手势检测器,前者负责滑动、点击这些单点操作,后者专管双指缩放。两个配合起来,触控事件还挺顺的。
像图片缩放,就是在onScale()
里拿到scaleFactor
,去更新ImageView
的scaleX
和scaleY
。平移的话,就靠ACTION_MOVE
,动态计算手指的偏移量,直接改translationX
和translationY
就行。
这里有个细节值得注意——想保持图片缩放时不偏离中心,要考虑锚点问题,根据缩放比例调一下坐标,效果会自然多。性能方面也别忽视,像开启android:hardwareAccelerated="true"
这种优化,滑动会更流畅。
哦对了,如果你图片太大,还可以提前用Bitmap.createScaledBitmap()
压缩一下,内存也能省不少。,PhotoWallFallsDemo这个例子比较基础,适合做图片查看器、相册、或者地图类应用的触控交互起步。
如果你正在折腾onTouchEvent()
、手势识别这些东西,不妨直接扒一下它的代码,改一改就能跑,效率高得多。
1.37MB
文件大小:
评论区