canvas教程

Java 双缓冲技术消除图片闪动

字号+ 作者:H5之家 来源:H5之家 2017-07-14 13:07 我要评论( )

一般在使用Canvas组件刷新显示图片或者绘图的时候,会产生闪烁。这是由于机制是先使用背景色对原有内容进行覆盖,再往上面绘制新内容所引起的。我们看到的闪烁就

    一般在使用Canvas组件刷新显示图片或者绘图的时候,会产生闪烁。这是由于机制是先使用背景色对原有内容进行覆盖,再往上面绘制新内容所引起的。我们看到的闪烁就是背景色和新内容之间的交替显示。

下面为Canvas中的update()方法的代码

    public void update(Graphics g) {         g.clearRect(0, 0, width, height);         paint(g);     }

从上面可以看出,每当update的时候,首先用背景色对原有内容进行填充,然后再进行绘制。

    下面利用双缓冲技术消除闪烁。原理:在刷新之前将要刷新的内容在内存中准备好,刷新的时候不进行填充背景色,直接将内存中的内容画出来。这就要重写update()方法了。

下面为重写的update()方法代码:

class graph extends Canvas { private Image buffer;//声明图片缓冲区 public void paint(Graphics g) {     //画图代码 } public void update(Graphics g) {     buffer=createImage(getWidth(),getHeight());//创建图片缓冲区     Graphics gBuffer=bufferImage.getGraphics();//获得图片缓冲区的画笔 if(gBuffer!=null) paint(gBuffer); else paint(g); gBuffer.dispose(); g.drawImage(bufferImage, 0, 0,null); } }


本文出自 “飞鱼技术” 博客,请务必保留此出处

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • extra 的配置

    extra 的配置

    2017-07-12 10:02

  • 推荐13款JavaScript图形和图表绘制工具

    推荐13款JavaScript图形和图表绘制工具

    2017-07-08 08:10

  • OrientDB配置数据库

    OrientDB配置数据库

    2017-07-07 18:03

  • HTML5-----Canvas 学习日记1

    HTML5-----Canvas 学习日记1

    2017-07-07 13:00

网友点评
(