android 多点触摸交互处理

    今天介绍一下多点触摸交互处理,过程中会有几个小demo。首先,我为什么要有学习这块呢?因为他涉及到图片的缩放啊,类似的一些操作,现在的app都必不可少。要想做图片的缩放,首先要知道手指在哪里。

    第一,如何获取手指在滑动中的坐标?

   这个可以通过view的onTouchListener实现,在过程中实现,一定一定要注意,把onTouch的方法返回true,默认是false的,因为false就代表只监听按下那个操作,移动和手指离开不会操作。例子代码如下:

 content_main.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_DOWN://按下
                        Log.d(TAG, "onTouch: 按下:" + "X:" + motionEvent.getX() + "|y:" + motionEvent.getY() );
                        break;
                    case MotionEvent.ACTION_MOVE: //移动
                        Log.d(TAG, "onTouch: 移动"+ "X:" + motionEvent.getX() + "|y:" + motionEvent.getY());
                        break;
                    case MotionEvent.ACTION_UP://手指离开
                        Log.d(TAG, "onTouch: 手指离开"+ "X:" + motionEvent.getX() + "|y:" + motionEvent.getY());
                        break;

                }
                return true;
            }
        });
  conteng_main,是整个布局文件。

  这样就可以监听到手指滑动和滑动的具体坐标。有了这个,我们可以做一个小例子,比如,手指滑动的时候,让图片跟着移动。做法是这样的,获取手指移动的时候坐标设置给图片的左边距和上边距。例子代码如下:

case MotionEvent.ACTION_MOVE: //移动
                        Log.d(TAG, "onTouch: 移动"+ "X:" + motionEvent.getX() + "|y:" + motionEvent.getY());
                        ivRl =  (RelativeLayout.LayoutParams)imageView.getLayoutParams();
                        ivRl.leftMargin = (int)motionEvent.getX();
                        ivRl.topMargin = (int)motionEvent.getY();
                        imageView.setLayoutParams(ivRl);
                        break;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值