zoukankan      html  css  js  c++  java
  • J2ME双缓冲问题

    双缓冲主要是用来解决屏幕闪烁以及绘图效率的问题,这里介绍下MIDP里面使用方法。

    1、有一个函数可以判断设备是否实现了双缓冲:isDoubleBuffered(),如果返回true,表示设备自身实现了双缓冲,理论上说我们就不用再自己设置了。不过为了安全第一,大家普遍认同的做法是,不管设备有没有实现,我们都自己设置一个,反正多做没有坏处。

    2、自己实现双缓冲代码如下:

    // initialize

           Image bufferImage = null;

           bufferImage=Image.createImage(scrW,scrH);

    //in paint

    public void paint(Graphics g){

    //双缓冲处理 

           Graphics old=g; //检查图片是否已经改变

           if(bufferImage!=null){ g=bufferImage.getGraphics(); }//bufferImageGraphics对象赋给g

          

    g.setColor(0x0); //设置背景色黑色

    g.fillRect(0,0,scrW,scrH);//清除当前画面,准备绘制新画面

    g.setColor(0xFFFFFF); //设置颜色为白色

    g.drawString("Test double buffer",10,50,0);

     

    if(g!=old){ //要是图片已经发生改变则将缓冲区图片一次性画到屏幕上去

           old.drawImage(bufferImage,0,0,Graphics.LEFT|Graphics.TOP);

    }

    }

    3、注意:某些BT的机器可能自己设置双缓冲会出问题,比如速度慢。

    目前已发现的有SoftBank 3GC的少数机型,所以遇到特殊问题时,可以考虑去掉自己设置的双缓冲看看,反正手机硬件已经支持了。

     
  • 相关阅读:
    mycat实例(1)
    Java连接Oracle数据库的示例代码
    文本处理grep命令
    回调函数
    算法基础--快排序,堆排序,归并排序
    c++ 中double与string之间的转换,char *
    c++ 类型转换
    allocator class
    csapp读书笔记-并发编程
    树的遍历-递归方法,非递归方法
  • 原文地址:https://www.cnblogs.com/secbook/p/2655501.html
Copyright © 2011-2022 走看看