android获得在SurfaceView上滑动距离

来源:互联网 发布:樱井知香ed2k file 编辑:程序博客网 时间:2024/05/01 15:18

1、重写onToucheEvent事件

public boolean onTouchEvent(MotionEvent event) {

        // TODO Auto-generated method stub
        if (event.getAction() == MotionEvent.ACTION_DOWN) {//点击屏幕
            x1 = event.getX();
            y1 = event.getY();

        }else if (event.getAction() == MotionEvent.ACTION_UP) {//手指离开

        }else if (event.getAction() == MotionEvent.ACTION_MOVE) {
            x2 = event.getX();
            y2 = event.getY();
        }

        if (listener != null) {
            listener.onMoveChanged(event.getAction(),(int)(x2-x1),(int)(y2-y1));//上抛滑动的距离数据
        }
        return super.onTouchEvent(event);
    }


2、实现上抛数据的接口

    public interface MjpgListener {
        void onMoveChanged(int action,int x,int y);//上层应用需要重写的函数
    }

3、定义一个Listener监听

private MjpgListener listener;

4、提供给上层设置监听器的接口

    public void setMjpgListener(MjpgListener mjpgListener) {
        listener = mjpgListener;
    }


5、上层应用

surfaceview.setMjpgListener(new mjpgListener());

    public class mjpgListener implements MjpgListener{

        @Override
        public void onMoveChanged(int action,int x, int y) {
            // TODO Auto-generated method stub
            Main.this.action = action;

            x_move = x;
            y_move = y;
            if (action == MotionEvent.ACTION_UP) {
                x_move = 0;
                y_move = 0;
            }
        }  
    }

6、至此,认为的添加了一个接口。



0 0
原创粉丝点击