`

java中动画消除闪烁的两个方法

    博客分类:
  • Java
阅读更多

我相信大家在用java处理动画效果的时候总是遇到一个棘手的问题那就是图像的闪烁,下面我就来介绍两种消除闪烁的方法:
1、通过覆盖public void update(Graphics g)来消除闪烁!
在动画的实现中,经常用到repaint()函数来重画屏幕,实现动画的加载,其实在java中repaint()是通过两个步骤来实现刷新功能的,首先它调用public void update()来刷新屏幕,其次再调用paint(Graphcis g)来重画屏幕,这就容易造成闪烁,特别是一些需要重画背景的程序,如果下一桢图象可以完全覆盖上一桢图象的话,便可以重写update函数如下来消除闪烁:
public void update(Graphics g){ paint(g) }

同样调用repaint()重画屏幕。或者直接重写不调用repaint,而用

Graphics g=getGraphics();

paint(g);来实现重画屏幕。
2、 通过双缓存消除闪烁?

为了防止屏幕重画出现的闪烁,先创建一个屏外绘图区,重画完毕,直接将成品再绘制到小程序屏幕上去。下面是站长创建动态广告板时用到的双缓存技术代码:
offScreenImage=createImage(w,h);//创建屏外绘图区
offScreen=offScreenImage.getGraphics();//取得绘图环境

offScreen.setFont(new Font("Serif",Font.PLAIN,14));
offScreen.drawString("You Are Welcome!",4,getBounds().height/2); 字串4
}
else{
offScreen.setColor(bgClr);
offScreen.fillRect(0,0,w,h);
offScreen.setColor(fgClr);
for(int i=j;ioffScreen.drawString(strs[i],0,y =wordvspace);
}
y=y-16*wordvspace;
}
g.drawImage(offScreenImage,0,0,this);//绘制屏外成品到小程序中

分享到:
评论

相关推荐

    java双缓冲消除闪烁

    通过上述分析和示例,我们可以看出,双缓冲技术是解决Java游戏编程和多媒体动画处理中屏幕闪烁问题的有效手段。无论是选择在`update(Graphics g)`还是`paint(Graphics g)`中实现双缓冲,都可以显著改善动画效果,...

    Java动画图标源码(显示GIF图像)

    在Java编程环境中,显示GIF图像,特别是动态GIF,是一项常见的需求,特别是在创建用户...使用提供的"Java动画图标源码(显示GIF图像)",开发者可以学习如何在Java应用中实现这一功能,为用户界面增添生动的动态元素。

    java 动画源码

    在Java中,实现动画主要依靠Java AWT(Abstract Window Toolkit)和Swing库,这两个库提供了丰富的组件和工具来创建交互式、动态的应用程序。 在Java AWT中,`java.awt.Graphics`类是进行绘图的基础,它提供了各种...

    Java 图形与动画编程实例(PDG)

    在Java编程领域,图形与动画编程是两个非常重要的分支,它们极大地丰富了用户界面的交互性和视觉效果。Java提供了一套强大的图形库和动画工具,使得开发者能够创建出丰富多彩的应用程序。下面我们将深入探讨Java图形...

    java漫天闪烁星星

    在Java编程领域,"java漫天闪烁星星"是一个典型的简单实例,它展示了如何利用图形用户界面(GUI)和动画效果来创建一个互动的视觉体验。这个程序的核心是通过Java的Swing库来构建窗体,并利用定时器和事件处理来实现...

    Java教材-applet动画实现

    Java是一种广泛应用于Web应用开发的编程语言,特别是在早期的Web应用中,Java Applets(Java小程序)非常流行,用于实现动态内容,如动画、游戏等。在Java中,通过不断更新屏幕上的图像来实现动画效果,这主要依赖于...

    Java动画制作 之动态时钟实现

    1. **Java图形基础**:首先,你需要熟悉Java的`java.awt`和`javax.swing`包,这两个包提供了创建和操作图形界面的基础类。例如,`JFrame`用于创建窗口,`JLabel`或`Canvas`可以用来绘制时钟。 2. **绘图API**:Java...

    Java动画编程优化技术.pdf

    本文由黄颖琦所著,探讨了针对不同编程环境下的Java动画编程优化技术,包括如何消除动画闪烁、提高显示效果的技巧。 在Java动画编程中,常见问题包括手机动画死机、图像闪烁或残缺以及图像延迟。实现动画的基本原理...

    java写的月亮升起星星闪烁

    总的来说,"java写的月亮升起星星闪烁"这个项目展示了Java Swing在创建动态GUI方面的强大能力,以及如何结合线程和动画效果来实现逼真的视觉体验。它融合了基本的图形绘制、线程管理、事件处理和性能优化等多方面...

    地图绘点,点闪烁、扩散、动画,openlayers3,geoserver 2.13.1

    在这个项目中,我们将探讨如何利用这两个工具来实现地图上的点的动态效果,如闪烁、扩散和动画。 首先,OpenLayers3 是一个强大的JavaScript库,它提供了丰富的API,用于在Web浏览器中展示地图,处理地图图层,以及...

    Android 渐入渐出动画 无闪烁 无黑底 Demo.zip

    在Java代码中,我们可以通过`AnimationUtils.loadAnimation()`方法加载XML动画,并将其应用到目标View上。例如: ```java Animation fadeIn = AnimationUtils.loadAnimation(context, R.anim.fade_in); myView....

    Android 渐入渐出动画 无闪烁 无黑底 Demo.rar

    首先,我们需要创建两个`AlphaAnimation`对象,一个用于渐入(Fade In),另一个用于渐出(Fade Out)。以下是一个简单的示例: ```java AlphaAnimation fadeIn = new AlphaAnimation(0.0f, 1.0f); // 从完全透明到...

    Android参考源码-渐入渐出动画 无闪烁 无黑底 Demo.zip

    首先,我们要理解Android中的两种主要动画类型:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画主要用于对象属性的变化,例如平移、旋转、缩放和透明度变化,而帧动画则适用于连续播放一系列...

    Android应用源码之渐入渐出动画 无闪烁 无黑底 Demo.zip

    Demo中的源码可能包含了两个Activity,分别展示渐入和渐出动画。可能还包含了一个自定义View或一个使用了动画的布局,以及对应的XML动画资源文件。在这些文件中,你可以看到如何将上述代码整合到实际项目中。 5. ...

    java中使用点阵字库demo源代码

    7. **应用拓展**:除了基本的文本显示,点阵字库还可以用于制作动画效果,如滚动文字、闪烁文字等,只需结合Java的定时器和动画框架即可实现。 通过这个示例项目,开发者可以深入理解Java图形处理的基本原理,学习...

    Android 渐入渐出动画 无闪烁 无黑底 Demo.zip源码资源下载

    这两个文件定义了动画的持续时间和透明度变化过程。 ```xml <!-- fade_in.xml --> android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> <!-- fade_out.xml --> android:...

    Java双缓冲技术Java双缓冲技术

    Java双缓冲技术的原理是将屏幕分为前台缓冲区和后台缓冲区两个部分。在前台缓冲区中显示当前屏幕,而在后台缓冲区中绘制下一帧动画图像。这样可以避免屏幕闪烁的出现,提高动画的流畅度。 在Java中,双缓冲技术可以...

    java线程之滚动的文字

    滚动文字的实现通常涉及两个主要部分:文字的绘制和动画控制。首先,我们需要一个能够绘制文字的类,这个类可能需要继承自Java的`java.awt.Component`或`javax.swing.JComponent`,这样我们就可以利用Java AWT或...

    android 渐入渐出动画 无闪烁 无黑底

    首先,我们需要创建两个XML文件,分别定义渐入和渐出动画。这些XML文件通常存放在res/anim目录下。例如,我们可以创建`fade_in.xml`和`fade_out.xml`。 `fade_in.xml`(渐入动画): ```xml android:duration=...

    java试卷及答案

    5 java程序分为 application 和applet两种 java applet的生命周期中的start方法在 执行完init方法后 以及从其他网页再回到这个applet 时候执行 java applet的生命周期中的stop方法在 离开applet的网页时执行 时候...

Global site tag (gtag.js) - Google Analytics