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的少数机型,所以遇到特殊问题时,可以考虑去掉自己设置的双缓冲看看,反正手机硬件已经支持了。

     
  • 相关阅读:
    php中的int参数
    php中parse_url函数的源码及分析
    记一次对python反弹shell的分析
    系统管理常用命令
    Linux内核参数注释与优化
    常见/dev/mapper/centos-root扩容
    使用Hbase快照将数据输出到互联网区测试环境的临时Hbase集群
    Postgres安装详解
    CentOS6.5生产环境系统安装
    Kafka跨网络访问设置
  • 原文地址:https://www.cnblogs.com/secbook/p/2655501.html
Copyright © 2011-2022 走看看