一般在使用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);

}

}

java图片双缓存_Java 双缓冲技术消除图片闪动相关推荐

  1. java整型缓存_java整型缓存

    缓存大家应该都听说过,像计算机中的缓存用于提高计算机性能,浏览器的缓存会在下一次访问该网站时一定程度上提高访问速度.通常缓存是用空间换时间,那么java中既节省了内存又提高了效率的缓存大家是否知道呢? ...

  2. java整型缓存_JAVA整型包装类的缓存策略

    Java Integer的缓存策略 public classJavaIntegerCache {public static voidmain(String... strings) { Integer ...

  3. java实现lru缓存_Java中的LRU缓存实现

    java实现lru缓存 什么是LRU缓存? (What is LRU Cache?) LRU Cache stands for Least Recently Used Cache. The size ...

  4. java 双冒号_Java :: 双冒号使用

    英文:double colon,双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性.它提供了一种不执行方法的方法. ...

  5. java中的双与_java 双冒号是什么操作符?

    双冒号::在JDK8的Lambda表达式函数中开始使用,用作方法引用. 具体用法,咱们来举个例子: 假设有个Person类: public class Person { public enum Sex ...

  6. java 对象池 实现_Java对象池技术的原理及其实现

    看到一片有关于java 对象基础知识,故转载一下,同时学习一下. 摘 要 本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式.还指出了使用对象池技术时所应注意的问题. 关键词 对象池 ...

  7. java中添加背景_java中如何增加背景图片

    我的程序代码如下,试了加背景的方法虽然程序没有错误,但是背景还是显示不出来,按钮的setsize好像也不起作用,希望高人能助一臂之力,小女子先写过各位了:....importjava.awt.... ...

  8. java 检测网络图片大小_java – 网络摄像头支持的图片大小

    我正在尝试检索我的网络摄像头支持的可用图片尺寸分辨率;使用OpenCV库.我已经尝试使用类似的 Android问题/答案,但无济于事. (例如 Android camera supported pic ...

  9. java 自动过期缓存_Java自动过期本地缓存简单实现

    实际项目中常常需要用到本地缓存,特别是一些固定不变的数据,不想频繁调接口,因为http请求本身需要耗时,下面几个类对本地缓存作了简单实现,支持自动过期功能 LocalCache.javainterfa ...

最新文章

  1. 企业网络推广期间影响企业网络推广自然排名的因素有哪些?
  2. 41.虚拟存储器以及相关算法
  3. 时间序列预测之二:灰色模型
  4. 科大星云诗社动态20201225
  5. 时间序列与R语言应用(part3)--趋势平稳与差分平稳
  6. 2013电大计算机应用基础试题及答案,[2017年电大]电大2013年计算机应用基础试题及答案[呕心沥血整理].doc...
  7. IBM Bluemix计划于2017年下半年在云资源中引入英特尔3D XPoint
  8. JVisualVM的使用教程
  9. 简述RAID 0,1,5,10区别
  10. linux测试网络带宽 360,Linux版360浏览器提示此为beta测试版本,已超过测试时间3个月的处理...
  11. QProcess实现进程通信
  12. 音乐心理学 | 书籍推荐
  13. 用Python分析《都挺好》中的人物关系
  14. python 读写文件 把爬取的图片信息写入文件
  15. 利用R语言对RNA-Seq进行探索分析与差异表达分析
  16. 漫威java_10年漫威,到底有多少角色。
  17. linux各种配置笔记
  18. js 图片放大缩小(动画效果)
  19. php 日历排班的例子,基于ThinkPHP实现的日历功能实例详解
  20. C语言———字符与字符串

热门文章

  1. 【宅男福利】百度云下载不限速软件,电脑和看视频无广告软件
  2. 2022年漏洞事件盘点
  3. Android Studio开发工具的设置
  4. 【国产MCU系列】在 HK32F030 上移植 RT-Thread Nano
  5. 在web上面显示地图并定位
  6. 阿里云国际版如何使用NGINX作为HTTPS转发代理服务器
  7. 数据结构与算法学习笔记(五)树
  8. 优秀的项目经理需要具备哪些品质?
  9. win10 安装“msi”文件提示 “Windows Installer无法打开此安装程序包。请确认该程序包存在,并且你有权访问它,或者与应用程序供应商联” error 2502 2503
  10. (轉貼) LCD入門常識