我们就把这个问题叫做图片查看器吧,它的主要功能有:双击缩放图片。 双指缩放图片。单指拖拽图片。为此这个图片查看器需要考虑以下的技术点:一、双击缩放图片:如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定
我们就把这个问题叫做图片查看器吧,它的主要功能有:
双击缩放图片。
双指缩放图片。
单指拖拽图片。
为此这个图片查看器需要考虑以下的技术点:
一、双击缩放图片:
如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定的倍数。
如何判断是否到达这个倍数来停止缩放。
判断完且停止放大后,图片可能已经超出了这个倍数需要的大小,如何回归到我们的目标大小。
判断完且停止缩小后,图片宽度可能已经小于屏幕宽度,在两边留下了空白,如何重置为原来的大小。
二、双指缩放图片:
双指缩放,放大一个特定的倍数停止。
如何判断是否到达这个倍数。
放大停止后,图片可能已经超出了这个倍数需要的大小,如何回归到我们的目标大小。
缩小停止后,图片宽度可能已经小于屏幕宽度,在两边留下了空白,如何重置为原来的大小。
三、单指拖拽:
当图片宽度小于或等于屏幕宽度的时候,禁止左右移动,当图片的高度小于屏幕高度的时候,禁止上下移动。
移动图片时,如果图片的一边已经与屏幕之间有了空白,松手后恢复,让图片的这一边与屏幕边界重合。
四、
如何判断是双击,还是多指触控,还是单指。
五、
如何解决与viewPager的滑动冲突,当图片已经滑动到尽头无法滑动时,此时viewPager应该拦截事件。
我们逐一来解决:
public class MyImageView extends ImageView implements ViewTreeObserver.OnGlobalLayoutListener,View.OnTouchListener { public MyImageView(Context context, AttributeSet attrs) { super(context, attrs); super.setScaleType(ScaleType.MATRIX); setOnTouchListener(this); mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onDoubleTap(MotionEvent e) { changeViewSize(e); return true; } }); }
--结束END--
本文标题: Android 在viewPager中双指缩放图片双击缩放图片单指拖拽图片的实现思路
本文链接: https://www.lsjlt.com/news/223366.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0