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;
}


}

更多相关文章

  1. android系统时间显示计时00:00:00
  2. Android使用ccache减少编译时间
  3. 设置android系统时间
  4. android 监听系统时区变化,日期变化,时间变化
  5. 转化为当前的日期和时间
  6. android简单的日期时间选择器
  7. 干货文章整理(建议有时间多看几遍)

随机推荐

  1. 【故障处理】imp-00051,imp-00008
  2. 如何正确的删除表空间数据文件
  3. 消除11.2上的db file parallel read
  4. 【故障处理】队列等待之TX - allocate IT
  5. PKG_COLLECTION_LHR 存储过程或函数返回
  6. 【12c】扩展数据类型(Extended Data Types
  7. 用x种方式求第n项斐波那契数,99%的人只会
  8. CAP定理
  9. Hash Cluster Table 研究
  10. 【故障处理】 DBCA建库报错CRS-2566