Android OnGestureListener
package com.abc.age.main;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.GestureDetector.OnGestureListener;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
public class MyView extends SurfaceView implements SurfaceHolder.Callback,
Runnable,
android.view.View.OnTouchListener,
OnGestureListener
{
SurfaceHolder holder;
boolean GameIsRun;
GestureDetector gd;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
holder=this.getHolder();
holder.addCallback(this);
this.setOnTouchListener(this);
this.setLongClickable(true);
gd=new GestureDetector(this);
gd.setIsLongpressEnabled(true);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
GameIsRun=true;
new Thread(this).start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
public void draw(Canvas canvas)
{
canvas.drawColor(Color.RED);
}
public void render()
{
Canvas canvas=holder.lockCanvas();
if(canvas!=null)
{
draw(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
public void update()
{
}
@Override
public void run() {
// TODO Auto-generated method stub
while(GameIsRun)
{
try
{
update();
render();
Thread.sleep(50);
}catch(Exception ex)
{
System.out.println("EX:"+ex.toString());
}
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
System.out.println("onTouch..ACTION:"+event.getAction()+"X:"+event.getX()+"Y:"+event.getY());
gd.onTouchEvent(event);
return false;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("GD..onDown..."+e.getAction()+"X:"+e.getX()+"Y:"+e.getY());
return false;
}
@Override
public void onShowPress(MotionEvent e) {//时间.115
// TODO Auto-generated method stub
System.out.println("GD..onShowPress..."+e.getAction()+"X:"+e.getX()+"Y:"+e.getY());
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("GD..onSingleTapUp..."+e.getAction()+"X:"+e.getX()+"Y:"+e.getY());
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,//distanceX==上一点的坐标-当前点的坐标。
float distanceY) {
// TODO Auto-generated method stub
System.out.println("GD..onScroll...E1:"+e1.getAction()+"X:"+e1.getX()+"Y:"+e1.getY()+"E2:"+e2.getAction()+"X:"+e2.getX()+"Y:"+e2.getY()
+"D_X:"+distanceX+"D_Y:"+distanceY);
return false;
}
@Override
public void onLongPress(MotionEvent e) {//时间.500
// TODO Auto-generated method stub
System.out.println("GD..onLongPress..."+e.getAction()+"X:"+e.getX()+"Y:"+e.getY());
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,//V>50 V<4000
float velocityY) {
// TODO Auto-generated method stub
System.out.println("GD..onFling...E1:"+e1.getAction()+"X:"+e1.getX()+"Y:"+e1.getY()+"E2:"+e2.getAction()+"X:"+e2.getX()+"Y:"+e2.getY()
+"velocityX:"+velocityX+"velocityY:"+velocityY);
return false;
}
}
更多相关文章
- android系统时间显示计时00:00:00
- Android使用ccache减少编译时间
- 设置android系统时间
- android 监听系统时区变化,日期变化,时间变化
- 转化为当前的日期和时间
- android简单的日期时间选择器
- 干货文章整理(建议有时间多看几遍)