手指触摸事件




import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;





public class SjfdSetup2Activity extends Activity {


    private GestureDetector mGestureDetector;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sjfd_setup2);
        // 2. GestureDetector能够判断一个事件是什么样的动作(手势)
        mGestureDetector = new GestureDetector(getApplicationContext(), new OnGestureListener() {
            
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public void onShowPress(MotionEvent e) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public void onLongPress(MotionEvent e) {
                // TODO Auto-generated method stub
                
            }
            
            // 4. 当GestureDetector判断出来某个动作的时候, 相应的回调方法就会被调用
            // e1: 表示按下去的事件
            // e2: 表示抬起来的事件
            // velocityX: 这次快速滑动事件的横向速度
            // velocityY: 这次快速滑动事件的纵向速度
            // 返回值: 表示的是有没有处理完这个事件
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                System.out.println("快速滑动----------");
                e1.getRawX(); // 获取当前这个事件距离屏幕左上角的横坐标
                e1.getX(); // 获取当前这个事件距离控件左上角的横坐标
                if(e2.getRawX() - e1.getRawX() > 100) {
                    // 表示向右滑, 切换到上一页
                    System.out.println("上一页----");
                    showPrePage();
                }else if(e1.getRawX() - e2.getRawX() > 100) {
                    // 表示向左滑, 切换到下一页
                    System.out.println("下一页----");
                    showNextPage();
                }
                return true;
            }
            
            @Override
            public boolean onDown(MotionEvent e) {
                // TODO Auto-generated method stub
                return false;
            }
        });
    }
    
    protected void showNextPage() {
        startActivity(new Intent(this, SjfdSetup3Activity.class));
        finish();
        // 给Activity设置切换动画, 最好放在startActivity和finish之后
        overridePendingTransition(R.anim.anim_next_enter, R.anim.anim_next_exit);
        
    }


    protected void showPrePage() {
        startActivity(new Intent(this, SjfdSetup1Activity.class));
        finish();
        overridePendingTransition(R.anim.anim_pre_enter, R.anim.anim_pre_exit);
    }


    public void nextPage(View v) {
//        startActivity(new Intent(this, SjfdSetup3Activity.class));
//        finish();
//        // 给Activity设置切换动画, 最好放在startActivity和finish之后
//        overridePendingTransition(R.anim.anim_next_enter, R.anim.anim_next_exit);
        showNextPage();
    }
    
    public void prePage(View v) {
//        startActivity(new Intent(this, SjfdSetup1Activity.class));
//        finish();
//        overridePendingTransition(R.anim.anim_pre_enter, R.anim.anim_pre_exit);
        showPrePage();
    }
    
    // 1. 当手指触摸到当前Activity的时候, 这个方法会被调用
    // MotionEvent 封装了整个触摸事件的信息
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 3. 让GestureDetector判断当前触摸事件是一个什么样的动作(手势)
        mGestureDetector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值