2012.10.07 安卓游戏开发笔记(十二)_SurfaceView视图

国庆收假 看着上次写的笔记都有十几天了! 加油了~~~~
SurfaeView&添加一个线程执行
1) 首先新建MySurfaceView继承SurfaceView类实现Callback and Runnable接口
public class ThreadMySurface extends SurfaceView implements Callback,Runnable 
2) 生成一个控制Surface大小格式和监听状态的类 SurfaceHolder,直接在函数中用this.getHolder(SurfaeView提供)得到一个实例;

public ThreadMySurface(Context context) {
super(context);
sfh = this.getHolder();//对其的实例化
sfh.addCallback(this);
paint  = new Paint();
paint.setColor(Color.RED);
setFocusable(true);
// TODO Auto-generated constructor stub
}


3) 线程的初始化和启动都写在视图的surfaceCreat创建函数中,并且让标示符在视图摧毁的时候置为false;这样可以避免线程的无限增多和线程已启动的异常;
	public void surfaceCreated(SurfaceHolder holder) {
		// TODO Auto-generated method stub
		screenW = this.getWidth();
		screenH = this.getHeight();
		flag = true;
		th = new Thread(this);
		th.start();
	}

4)  Canvas画布的实例化和解锁提交 在try中使用sfh.lockCanvas; 最后提交是在finally中实现

5) 保持刷帧时间的一致 采用一个像系统获取一个时间戳 long start = System.currentTimeMills();运行完相关程序一个时间戳 end; 两者之间的差固定在某个数值

if((end-start)<maxsleep){ thread.sleep(maxsleep-(end - start))};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值