1)j2me的自定义的run线程和paint基本上一致,但android的在自定义的线程中处理逻辑和绘制时,由于android的surfaceView有缓冲机制,常导致逻辑部分执行完了,而缓存的内容还没有绘制到屏幕上。j2me程序转换为android程序时经常会出现闪烁现象
以前在J2ME中的刷屏方式
g.setClip(0,0, screeenwidth, screenheight);
g.fillRect(0,0,screenwidth, screenheight);
现在可以改为: public void refreshFullScreen(){
canvas.save(); //保存当前状态
canvas.clipRect(0,0,canvas.getWidth(),canvas.getHeight());
canvas.restore();//释放当前的状态
}
关于闪烁现象建议:
(1)原在逻辑部分的frame++ 放到ondraw部分
(2)在程序的状态跳转时最好应用一下refreshFullScreen()