android OnGestureListener简单认识DEMO


这个DEMO项目就是简单的一个界面,只需要实现OnTouchListener 和OnGestureListener的接口,再在界面中添加一个GestureDetector 的对象,用于接口实现触摸的各类事件响应,再在OnTouchListener 中进行调用即可。。。



代码:


import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
/*
 * 关于触摸屏的事件学习
 */
public class GestureDemo1Activity extends Activity implements OnTouchListener , OnGestureListener
{
//处理触摸事件的响应
private GestureDetector mDetector = new GestureDetector(this);

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //把触摸事件和长按键事件添加到view中
        View myView = (View)findViewById(R.id.id1);
        myView.setOnTouchListener(this);
        myView.setLongClickable(true);
        
    }


@Override
public boolean onTouch(View v, MotionEvent event)
{
System.out.println("点击数量:"+event.getPointerCount());
switch (event.getAction())
{
//点下按
case MotionEvent.ACTION_POINTER_DOWN:
System.out.println("onTouch ACTION_POINTER_DOWN");
break;
//按下
case MotionEvent.ACTION_DOWN:
System.out.println("onTouch ACTION_DOWN");
break;
//滑动
case MotionEvent.ACTION_MOVE:
System.out.println("onTouch ACTION_MOVE");
System.out.println("onTouch ACTION_MOVE x="+event.getX());
System.out.println("onTouch ACTION_MOVE y=" + event.getY());
break;
//起来
case MotionEvent.ACTION_UP:
System.out.println("onTouch ACTION_UP");
break;
}
//跳转到下一个中区
return mDetector.onTouchEvent(event);
}


//-------------------------------------------------------
@Override
public boolean onDown(MotionEvent e)
{
System.out.println("mDetector onDown()");
return false;
}


@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
//e1起点 ,e2起点 , velocityX在X轴上面的速度, velocityY在Y轴上面的滑动速度
System.out.println("mDetector onFling()");
if( e1.getX() - e2.getX() > 10 )
{
System.out.println("mDetector 向左");
}
else if(  e1.getX() - e2.getX() > 10 )
{
System.out.println("mDetector 向右");
}
if( e1.getY() - e2.getY() > 10 )
{
System.out.println("mDetector 向上");
}
else if(  e1.getY() - e2.getY() > 10 )
{
System.out.println("mDetector 向下");
}
return false;
}


@Override
public void onLongPress(MotionEvent e)
{
System.out.println("onLongPress()");
}


@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
//e1起点 e2起点 distanceX在X轴上面的距离 distanceY在Y轴上面的滑动距离
System.out.println("onScroll()");
return false;
}


@Override
public void onShowPress(MotionEvent e)
{
System.out.println("onShowPress()");
}


@Override
public boolean onSingleTapUp(MotionEvent e)
{
System.out.println("onSingleTapUp()");
return false;
}
    

}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值