手势研究

手势在 Android 中称为 Fling.

利用 OnGestureListener 来监听用户的手势动作。用 OnTouchListener 来监听用户的触屏事件。

1 、首先继承 OnTouchListener OnGestureListener 接口

2 、创建一个手势探测器

mGestureDetector = new GestureDetector( this );

3 、在重写的 OnTouch 方法中返回探测器探测的事件

    @Override

    public boolean onTouch(View v, MotionEvent event) {

       // TODO Auto-generated method stub

       return mGestureDetector .onTouchEvent(event);

    }

4 、给界面上的控件设置 Touch 监听,并设置为可以长按。

Eg: TextView tv=(TextView)findViewById(R.id. tv );

    tv.setOnTouchListener( this );

    tv.setLongClickable( true );

5 、这样就可以在重写的 OnFling 方法中自定义判断用户的手势

一个合理的手势必须超过一定的移动距离和一定的移动速度

用户可以自动最小距离和最低速度

Eg:// 最小距离

private static final int FLING_MIN_DISTANCE = 100;

// 最低速度

private static final int FLING_MIN_VELOCITY = 200;

当用户的动作符合手势动作的要求,就可以在 OnFling 中根据手势的类型进行对应的操作

    @Override

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

           float velocityY) {

       // TODO Auto-generated method stub

       if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE

              && Math.abs (velocityX) > FLING_MIN_VELOCITY ) {

           // 向左

       } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE

              && Math.abs (velocityX) > FLING_MIN_VELOCITY ) {

           // 向右

       } else if (e1.getY()-e2.getY()> FLING_MIN_DISTANCE

              &&Math.abs (velocityY)> FLING_MIN_VELOCITY ) {

           // 向上

       } else if (e2.getY()-e1.getY()> FLING_MIN_DISTANCE

              &&Math.abs (velocityY)> FLING_MIN_VELOCITY ) {

           // 向下

       }

       return false ;

    }

手势运用:

结合手势,来对界面上的控件进行对应操作,可以大大的提高用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值