import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class MySurfaceView extends SurfaceView implements Runnable, Callback {
private SurfaceHolder sfh = null; // 管理类
private Paint paint = null; // 画笔
private Canvas canvas = null; // 画板
private Thread t = null; // 线程
private boolean flas = false; // 线程启动标志
/**
* SurfaceView 初始化方法
* @param context 上下文
*/
public MySurfaceView(Context context) {
super(context);
sfh = this.getHolder(); // 获得管理类
sfh.addCallback(this);
paint = new Paint();
paint.setAntiAlias(true);
}
/**
* SurfaceView 创建时响应该方法
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
flas = true;
t = new Thread(this);
t.start();
}
/**
* SurfaceView 状态发生改变时响应改方法
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
/**
* SurfaceView 销毁时响应改方法
*/
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flas = false;
}
/**
* 线程调用
*/
@Override
public void run() {
while(flas) {
long start = System.currentTimeMillis();
long stop = System.currentTimeMillis();
try {
if((stop-start) < 50) {
Thread.sleep(50-(stop-start));
}
} catch (Exception e) {
}
}
}
/**
* 游戏绘图
*/
public void myDraw() {
if(sfh != null) {
canvas = sfh.lockCanvas();
try {
canvas.drawColor(Color.BLACK); // 清屏操作
/* 在下面写绘图方法 */
} catch(Exception e) {
} finally {
if(canvas != null) {
sfh.unlockCanvasAndPost(canvas);
}
}
}
}
/**
* 游戏逻辑
*/
public void myLogic() {
}
/**
* 触摸操作时响应改方法
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
/**
* 键盘按下时响应该方法
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
/**
* 键盘抬起时响应该方法
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return super.onKeyUp(keyCode, event);
}
}
SurfaceView 模板
最新推荐文章于 2021-07-16 16:22:55 发布