`
行者买刀
  • 浏览: 194188 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

java加载gif动画图片

    博客分类:
  • J2SE
阅读更多

  经常在开发过程中会需要一些动态的图片来使程序变得连惯.如果采用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开始加载由此媒体跟踪器跟踪的所有图像。在完成加载正在跟踪的全部图像之前,此方法一直等待。

如果在加载或缩放图像时出错,则该图像被视为已完成加载。使用 isErrorAnyisErrorID 方法检查错误。

加载完之后,我们就可以使用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(),这样当我们调用这样状态条时,就会显得比较快.

分享到:
评论
1 楼 itlangqun 2010-11-20  
http://space.itpub.net/13685345/viewspace-514315
更好的解决方案。

相关推荐

    java实现gif动画效果(java显示动态图片)

    在Java编程语言中,实现GIF动画效果实际上是对一系列静态图像进行定时切换,模拟出动态效果。本示例主要展示了如何在Java环境下显示动态图片,特别是GIF格式的动画。以下将详细介绍实现这一功能的关键步骤和相关知识...

    android加载gif动画

    因此,对于更广泛的Android设备兼容性,我们需要依赖第三方库,如`NineOldAndroids`(用于支持更低版本的Android)和`Glide`、`Picasso`、`Universal Image Loader`等图片加载库,它们都提供了加载GIF动画的功能。...

    Android SurfaceView实现加载GIF动画

    本篇文章将深入探讨如何使用`SurfaceView`来实现加载GIF动画,这是一个常见的需求,特别是在游戏开发或者需要实时渲染场景的应用中。 首先,我们要理解`SurfaceView`的基本概念。`SurfaceView`是Android系统提供的...

    动态加载gif图片

    在Android或iOS应用开发中,动态加载GIF图片是一个常见的需求,特别是在实现动画效果或者展示交互性内容时。本文将详细介绍如何在Android和iOS平台上实现静态和动态加载GIF图片,帮助开发者掌握这一实用技能。 ### ...

    Java在窗口上加载显示GIF动画图像.rar

    Java在窗口上加载显示GIF动画图像,将多个独立的GIF图像串联在一起显示,形成GIF特有的动画形式。主要代码如下:  ImageIcon[] images; //用于动画的图标数组  Timer animationTimer;  int currentImage = 0;...

    android中加载gif图片

    在Android开发中,加载GIF图片并实现动画效果是一项常见的需求,特别是在制作动态表情、加载指示器或游戏动画等场景中。本篇文章将详细介绍如何在Android应用中加载和播放GIF图片。 首先,我们需要理解GIF是一种...

    安卓加载Gif图片

    在Android开发中,加载GIF图片是一项常见的任务,特别是在创建交互式用户界面或者展示动态内容时。本篇文章将深入探讨如何在Android应用中加载和显示GIF图片,以实现动态图的效果。 首先,我们需要理解GIF图片的...

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

    这个资源提供了一套Java源码,专门用于处理和显示GIF动画图标。下面将详细介绍如何在Java中实现这个功能以及相关知识点。 1. **Java AWT和Swing库**:在Java中,我们通常使用Abstract Window Toolkit (AWT) 和 ...

    glide框架加载gif图片

    本篇文章将详细介绍如何使用Glide框架来加载GIF图片。 ### 1. Glide简介 Glide是Google推荐的Android图片加载库之一,由bumptech开发并维护。它的主要功能包括图片缓存、内存管理、图片缩放以及支持多种资源类型...

    GIF 动画按钮源代码

    - **Java**:在Java Swing或JavaFX中,可以使用`javax.swing.ImageIcon`加载GIF,并在按钮上设置它。通过监听事件,修改组件的属性来控制动画。 - **Python**:对于Python GUI库,如Tkinter或PyQt,可以使用类似的...

    Android glide框架加载gif图片.rar

    本资料主要关注如何使用Glide来加载GIF图片。 Glide的核心功能在于其强大的内存管理和缓存策略,它能够无缝地加载、缩放和显示图片,减少内存消耗,避免内存抖动。在Android应用中,尤其是在滚动列表或者网格视图时...

    android GIF动画加载

    在Android开发中,GIF动画加载是一个常见的需求,特别是在社交应用、游戏或者任何需要展示动态效果的场景。本文将深入探讨如何在Android中实现GIF动态图片的加载,以满足程序播放小型动态图片的需求。 首先,我们...

    android 实现gif动画

    在Android开发中,实现GIF动画,特别是在TextView中展示GIF表情,是一项常见的需求,尤其在社交应用或者消息传递场景中。以下将详细介绍如何在Android中实现这一功能,并且会探讨一些相关的技术点。 首先,我们需要...

    java实现多张png,jpg等各种图片文件转动态gif图

    Java标准库并不直接支持GIF动画的创建,因此我们需要引入第三方库,例如Apache Commons Imaging(以前称为Apache Sanselan)或者更专门的GIF处理库如gif4j或Java ImageIO-GIF。在这个案例中,我们可能使用gif4j库,...

    java源码:GIF动画制作工具 GiftedMotion.zip

    Java源码:GIF动画制作工具GiftedMotion.zip是一个包含Java源代码的压缩包,用于创建和编辑GIF动画。这个工具可能对于开发者或者设计师来说非常有用,因为它允许他们通过编程方式来控制GIF的生成过程,从而实现更加...

    android自定义textview加载GIF(动态图)

    - **按需加载**:只在需要时加载GIF,而不是一开始就加载整个图片。 - **缩放图片**:根据TextView的实际大小来调整GIF的尺寸,避免加载过大的图片。 - **使用BitmapFactory.Options**:通过`inJustDecodeBounds`...

    android 加载(显示)gif图片

    接下来,在你的Java或Kotlin代码中,使用`Glide`来加载GIF: ```java Glide.with(this) .asGif() .load(R.drawable.your_gif_file_name) // 这里的资源ID对应你的GIF文件 .into(ivGif); // ivGif是你之前在XML中...

    Android之gif动画实现

    你可以查看其中的Activity或Fragment,找到如何初始化GIF动画的代码段,学习如何在布局文件中设置ImageView,并在Java或Kotlin代码中加载GIF资源。 除了加载GIF,我们还需要关注性能优化。对于内存管理,避免一次性...

    fresco加载gif图片

    3. **强大的动画支持**:Fresco 可以处理复杂的动画,包括 GIF 和 WebP 动图,以及渐进式加载和帧率控制。 4. **透明度处理**:即使在低质量的硬件上,Fresco 也能处理好半透明图片,确保颜色正确显示。 **加载 GIF...

Global site tag (gtag.js) - Google Analytics