Android 添加手势操作

有时候需要对屏幕界面进行手势操作,这个时候就需要用到触屏监听接口。这个接口一般由View类及子类进行提供,通过设置监听函数,就可以完成对触屏的监听。代码如下所示:

       mChartView.setOnTouchListener(newOnTouchListener() {

              // 重写触屏监听函数,用作缩放处理

              @Override

              public booleanonTouch(View arg0, MotionEvent arg1) {

                   // TODOAuto-generated method stub

                   int nCount =arg1.getPointerCount();

                   int n =arg1.getAction();

                   if(arg1.getAction() == MotionEvent.ACTION_MOVE&&nCount == 1) {// 1个手指滑动

                       realDataChart.SetPanAble();

                   }

                   if((arg1.getAction()&MotionEvent.ACTION_MASK) ==MotionEvent.ACTION_POINTER_DOWN

                            && 2 ==nCount)// 标示2个手指

                   {

                       for (int i = 0; i< nCount; i++) {

                            float x =arg1.getX(i);

                            float y =arg1.getY(i);

                            Point ptPoint= new Point((int)x,(int)y);

                       }

                       int xlen =Math.abs((int)arg1.getX(0) - (int)arg1.getX(1));

                       int ylen =Math.abs((int)arg1.getX(0) - (int)arg1.getY(1));

                       nLenStart = Math.sqrt(xlen*xlen+ ylen*ylen);  // 计算起始两指之间的间距

                   }

                   else if((arg1.getAction()&MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP

                            && 2 ==nCount) {

                       for (int i = 0; i< nCount; i++) {

                            float x =arg1.getX(i);

                            float y =arg1.getY(i);

                            Point ptPoint= new Point((int)x,(int)y);

                       }

                       int xlen =Math.abs((int)arg1.getX(0) - (int)arg1.getX(1));

                       int ylen =Math.abs((int)arg1.getX(0) - (int)arg1.getY(1));

                       nLenEnd = Math.sqrt(xlen*xlen+ ylen*ylen);    // 计算起始两指之间的间距

                       if (nLenEnd > nLenStart + 20) {

                            realDataChart.SetZoom(2);

                       }

                       else if (nLenEnd < nLenStart - 20) {

                            realDataChart.SetZoom(0.5f);

                       }

                   }

                  

                   return false;

              }

         });

  上述代码主要执行了一下两步操作。

1.      添加监听触屏事件的函数接口。

2.      在接口内,通过对手势进行判断,来执行相对应的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值