码迷,mamicode.com
首页 > 其他好文 > 详细

简单手势_GestureDetector

时间:2016-08-15 01:21:36      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

 

实现简单的手势比如横竖滑动可以用GestureDetector实现。

技术分享

 

分析可以确定,

1、首先要写入onTouchListener事件获得motionEvent对象

2、创建一个GestureDetector

3、GestureDetector会转发motionEvent对象至Listener

4、listener对象做合适的处理。有SimpleOnGestureListener已经做了处理

 

show code

public class MainActivity extends AppCompatActivity {

    ImageView image;

    GestureDetector mGestureDetector;

    class mGestureListener extends GestureDetector.SimpleOnGestureListener {
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            if (e1.getX() - e2.getX() > 0) {
                Toast.makeText(MainActivity.this, "从右往左", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this, "从从左往右", Toast.LENGTH_SHORT).show();
            }
            return super.onFling(e1, e2, velocityX, velocityY);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        image = (ImageView) findViewById(R.id.image);

        mGestureDetector = new GestureDetector(new mGestureListener());//实例化对象,把listener实现类传入进去,这样就能建立转发的连接

        image.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mGestureDetector.onTouchEvent(event);//GestureDetector转发对象到listener
                return true;
            }
        });

    }
}

 另外mGestureDetector = new GestureDetector(new mGestureListener());已经过时了,可以用替代方法:

 mGestureDetector = new GestureDetector(this, this); // 注意前一个this代表的是一个Context,后一个this代表的是一个OnGestureListener。

 

简单手势_GestureDetector

标签:

原文地址:http://www.cnblogs.com/lyxin/p/5771427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!