⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gifframe.java

📁 手机程序
💻 JAVA
字号:
package com.gameislive.browser;

import javax.microedition.lcdui.Image;
import java.util.Vector;

/**
 * Gif帧管理器<br>
 * Gif动画被拆成一帧一个Image对象,保存在Vector中<br>
 * 播放时根据程序控制Gif动画的帧速率
 * 
 * @author pan
 *
 */
public class GifFrame {

	/**
	 * 保存所有帧系列
	 */
    private Vector frames;
    
    /**
     * 当前帧
     */
    private int index;

    public GifFrame() {
    	frames = new Vector(1);
        index = 0;
    }
    
    /**
     * 添加一帧
     * @param image
     */
    public void addImage(Image image) {
    	frames.addElement(image);
    }

    public int size() {
        return frames.size();
    }

    /**
     * 返回当前帧的Image
     * @return
     */
    public Image getImage() {
        if (size() == 0) {
            return null;
        } else {
            return (Image) frames.elementAt(index);
        }
    }

    /**
     * 下一帧
     */
    public void nextFrame() {
        if (index + 1 < size()) {
            index++;
        } else {
            index = 0;
        }
    }
    
    /**
     * 从byte[]中创建GifFrame
     * @param abyte0
     * @return
     */
    public static GifFrame CreateGifImage(byte abyte0[]) {
        try {
        	GifFrame GF = new GifFrame();
            Image image = null;
            GifDecoder gifdecoder = new GifDecoder(abyte0);
            for (; gifdecoder.moreFrames(); gifdecoder.nextFrame()) {
                try {
                    image = gifdecoder.decodeImage();
                    if (GF != null && image != null) {
                        GF.addImage(image);
                    }
                    continue;
                }
                catch (Exception e) {
                	e.printStackTrace();
                }
                break;
            }
            gifdecoder.clear();
            gifdecoder = null;
            return GF;
        } catch (Exception e) {
        	e.printStackTrace();
            return null;
        }
    }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -