java加载gif动画图片 您所在的位置:网站首页 立陶宛事件最新动态图片视频播放 java加载gif动画图片

java加载gif动画图片

2024-07-11 06:09| 来源: 网络整理| 查看: 265

  经常在开发过程中会需要一些动态的图片来使程序变得连惯.如果采用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(),这样当我们调用这样状态条时,就会显得比较快.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有