Android多点触控开发原理 2.0以后sdk才支持,放大图片结合触控的值,你写个图片放大显示算法就行了

解决方案 »

  1.   

    event.getAction() //获取触控动作比如ACTION_DOWN
       event.getPointerCount(); //获取触控点的数量,比如2则可能是两个手指同时按压屏幕
       event.getPointerId(nID); //对于每个触控的点的细节,我们可以通过一个循环执行getPointerId方法获取索引
       event.getX(nID); //获取第nID个触控点的x位置
       event.getY(nID); //获取第nID个点触控的y位置
       event.getDownTime() //按下开始时间
       event.getEventTime() // 事件结束时间主要是用到这几个,在ACTION_MOVE的时候,判断getPointerCount,一般都是两个手指向外滑动实现放大,所以getPointerCount应该是2,然后循环获取每个点的x和y,每次move时计算两点间的距离,然后除以时间,获取速度,连续两次move的速度超过一个值就去实现放大。
      

  2.   


    谢谢你的回答,你说取两个点的坐标是这样吗?x1=event.getX(1); x2=event.getX(2); 两个点的x坐标,距离/时间,这个时间是指什么?还有我看android手机图片浏览器不止两个手指,三个四个……都可以放大缩小的。这些有点没想明白~~
      

  3.   

    我是这个意思,比如两次move事件,肯定是两个手指同时向外滑动吧,第一次move会有两个点,就是两个手指的touch坐标,记录一下getEventTime,然后第二次move又有两个点,再用这次的getEventTime减去第一次的getEventTime,获取的就是相邻两次move的时间差,然后用相邻两次move的距离除以这个时间差,就是两次move的速度,你可以规定一下,如果两次move间的速度大于一个值,就判断是放大功能执行生效。
      

  4.   


    dinjay真厉害 我是外行竟然也被你教会了