经常在开发过程中会需要一些动态的图片来使程序变得连惯.如果采用ImageIO加载图片的话只会加载gif图片中的一帧,采用Toolkit类就可以把它们全部加载进来.
示例:
Image image =Toolkit.getDefaultToolkit.createImage(当前类类名.class.getResource(图片所在位置));
如果图片过大,可能会出现延迟,为了防止这种情况发生我们可以在图片完全被加载进来之后才显示.
我们可以使用MediaTracker,这个类在开发游戏中会经常遇到.
示例:
MediaTracker mt = new MediaTracker(new JPanel());//new JPanel可以替换成当前的视图类
mt.addImage(image,0);
mt.waitForAll();
waitForAll开始加载由此媒体跟踪器跟踪的所有图像。在完成加载正在跟踪的全部图像之前,此方法一直等待。
如果在加载或缩放图像时出错,则该图像被视为已完成加载。使用 isErrorAny
或 isErrorID
方法检查错误。
加载完之后,我们就可以使用image.
附上一段简单的单例调用...
public class LoadSystemWaitting {
private static LoadSystemWaitting loadSystemWaitting;
private Image image;
private JWindow jw;
public static void main(String args[]){
LoadSystemWaitting.getInstance(true);
}
public static void instanceInit(){
if (loadSystemWaitting == null) {
loadSystemWaitting = new LoadSystemWaitting();
}
}
public static LoadSystemWaitting getInstance(boolean alwaysOnTop) {
if (loadSystemWaitting == null) {
loadSystemWaitting = new LoadSystemWaitting();
}
loadSystemWaitting.jw.setAlwaysOnTop(alwaysOnTop);
loadSystemWaitting.setVisible(true);
return loadSystemWaitting;
}
private JPanel getJPanel() {
JPanel jp = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}
};
return jp;
}
public static void closeWindow() {
if (loadSystemWaitting != null) {
loadSystemWaitting.setVisible(false);
}
}
public void setVisible(boolean b){
jw.setVisible(b);
}
private LoadSystemWaitting() {
image = Toolkit.getDefaultToolkit().createImage(
LoadSystemWaitting.class
.getResource("/com/sbt/common/images/loadState.gif"));
jw = new JWindow();
jw.setSize(145, 15);
jw.setLayout(new BorderLayout());
jw.add(getJPanel(), BorderLayout.CENTER);
jw.setLocationRelativeTo(null);
}
}
在程序开始之后我们可以先调用instanceInit(),这样当我们调用这样状态条时,就会显得比较快.
分享到:
相关推荐
在Java编程语言中,实现GIF动画效果实际上是对一系列静态图像进行定时切换,模拟出动态效果。本示例主要展示了如何在Java环境下显示动态图片,特别是GIF格式的动画。以下将详细介绍实现这一功能的关键步骤和相关知识...
因此,对于更广泛的Android设备兼容性,我们需要依赖第三方库,如`NineOldAndroids`(用于支持更低版本的Android)和`Glide`、`Picasso`、`Universal Image Loader`等图片加载库,它们都提供了加载GIF动画的功能。...
本篇文章将深入探讨如何使用`SurfaceView`来实现加载GIF动画,这是一个常见的需求,特别是在游戏开发或者需要实时渲染场景的应用中。 首先,我们要理解`SurfaceView`的基本概念。`SurfaceView`是Android系统提供的...
在Android或iOS应用开发中,动态加载GIF图片是一个常见的需求,特别是在实现动画效果或者展示交互性内容时。本文将详细介绍如何在Android和iOS平台上实现静态和动态加载GIF图片,帮助开发者掌握这一实用技能。 ### ...
Java在窗口上加载显示GIF动画图像,将多个独立的GIF图像串联在一起显示,形成GIF特有的动画形式。主要代码如下: ImageIcon[] images; //用于动画的图标数组 Timer animationTimer; int currentImage = 0;...
在Android开发中,加载GIF图片并实现动画效果是一项常见的需求,特别是在制作动态表情、加载指示器或游戏动画等场景中。本篇文章将详细介绍如何在Android应用中加载和播放GIF图片。 首先,我们需要理解GIF是一种...
在Android开发中,加载GIF图片是一项常见的任务,特别是在创建交互式用户界面或者展示动态内容时。本篇文章将深入探讨如何在Android应用中加载和显示GIF图片,以实现动态图的效果。 首先,我们需要理解GIF图片的...
这个资源提供了一套Java源码,专门用于处理和显示GIF动画图标。下面将详细介绍如何在Java中实现这个功能以及相关知识点。 1. **Java AWT和Swing库**:在Java中,我们通常使用Abstract Window Toolkit (AWT) 和 ...
本篇文章将详细介绍如何使用Glide框架来加载GIF图片。 ### 1. Glide简介 Glide是Google推荐的Android图片加载库之一,由bumptech开发并维护。它的主要功能包括图片缓存、内存管理、图片缩放以及支持多种资源类型...
- **Java**:在Java Swing或JavaFX中,可以使用`javax.swing.ImageIcon`加载GIF,并在按钮上设置它。通过监听事件,修改组件的属性来控制动画。 - **Python**:对于Python GUI库,如Tkinter或PyQt,可以使用类似的...
本资料主要关注如何使用Glide来加载GIF图片。 Glide的核心功能在于其强大的内存管理和缓存策略,它能够无缝地加载、缩放和显示图片,减少内存消耗,避免内存抖动。在Android应用中,尤其是在滚动列表或者网格视图时...
在Android开发中,GIF动画加载是一个常见的需求,特别是在社交应用、游戏或者任何需要展示动态效果的场景。本文将深入探讨如何在Android中实现GIF动态图片的加载,以满足程序播放小型动态图片的需求。 首先,我们...
在Android开发中,实现GIF动画,特别是在TextView中展示GIF表情,是一项常见的需求,尤其在社交应用或者消息传递场景中。以下将详细介绍如何在Android中实现这一功能,并且会探讨一些相关的技术点。 首先,我们需要...
Java标准库并不直接支持GIF动画的创建,因此我们需要引入第三方库,例如Apache Commons Imaging(以前称为Apache Sanselan)或者更专门的GIF处理库如gif4j或Java ImageIO-GIF。在这个案例中,我们可能使用gif4j库,...
Java源码:GIF动画制作工具GiftedMotion.zip是一个包含Java源代码的压缩包,用于创建和编辑GIF动画。这个工具可能对于开发者或者设计师来说非常有用,因为它允许他们通过编程方式来控制GIF的生成过程,从而实现更加...
- **按需加载**:只在需要时加载GIF,而不是一开始就加载整个图片。 - **缩放图片**:根据TextView的实际大小来调整GIF的尺寸,避免加载过大的图片。 - **使用BitmapFactory.Options**:通过`inJustDecodeBounds`...
接下来,在你的Java或Kotlin代码中,使用`Glide`来加载GIF: ```java Glide.with(this) .asGif() .load(R.drawable.your_gif_file_name) // 这里的资源ID对应你的GIF文件 .into(ivGif); // ivGif是你之前在XML中...
你可以查看其中的Activity或Fragment,找到如何初始化GIF动画的代码段,学习如何在布局文件中设置ImageView,并在Java或Kotlin代码中加载GIF资源。 除了加载GIF,我们还需要关注性能优化。对于内存管理,避免一次性...
3. **强大的动画支持**:Fresco 可以处理复杂的动画,包括 GIF 和 WebP 动图,以及渐进式加载和帧率控制。 4. **透明度处理**:即使在低质量的硬件上,Fresco 也能处理好半透明图片,确保颜色正确显示。 **加载 GIF...