您的位置:首页 > 编程语言 > Java开发

java画图中运用缓冲解决屏幕闪烁方案二

2010-11-24 16:24 295 查看
import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class BufferDrawExample extends MIDlet{ private Display display; private MyCanvas canvas; public BufferDrawExample() { //获取MIDlet的Display对象实例 display = Display.getDisplay(this); //声明Canvas屏幕对象 canvas = new MyCanvas (this); } protected void startApp() { //显示屏幕对象 display.setCurrent(canvas); } protected void pauseApp() { } protected void destroyApp( boolean unconditional ) { } public void exitMIDlet() { destroyApp(true); notifyDestroyed(); }}class MyCanvas extends Canvas implements CommandListener{ private Command exit; //声明图片对象 private Image image; //声明作为缓冲区的可变图像对象 private Image buffer; private BufferDrawExample bufferDrawExample; public MyCanvas (BufferDrawExample bufferDrawExample) { this.bufferDrawExample = bufferDrawExample; exit = new Command("Exit", Command.EXIT, 1); addCommand(exit); setCommandListener(this); try { //获得图像文件 image = Image.createImage("/12.png"); } catch (Exception e) { System.out.println(e); } //创建可变图像 buffer=Image.createImage(getWidth(),getHeight()); //获取缓冲区的Graphics对象 Graphics graphics=buffer.getGraphics(); //设置颜色 graphics.setColor(255,255,255); //填充屏幕 graphics.fillRect(0, 0, getWidth(), getHeight()); //向缓冲区内绘制图像 graphics.drawImage(image,getWidth()/2,getHeight()/2,graphics.HCENTER|graphics.VCENTER); //释放缓冲区的Graphics对象 graphics=null; } protected void paint(Graphics g) { //将缓冲区的内容绘制到屏幕上 g.drawImage(buffer,getWidth()/2,getHeight()/2,g.HCENTER|g.VCENTER); } public void commandAction(Command command, Displayable displayable) { if (command == exit) { bufferDrawExample.exitMIDlet(); } } }
本文出自 “技术人生” 博客,请务必保留此出处http://zhaohaiyang.blog.51cto.com/2056753/431496
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: