gifframe.java

来自「在j2me中播放gif动画的测试程序.使用midp2.0,」· Java 代码 · 共 101 行

JAVA
101
字号
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) {        	System.out.println("无帧");            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 {        	System.out.println("开始创建gif");        	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) {                    	System.out.println("添加图片");                        GF.addImage(image);                    }                    continue;                }                catch (Exception e) {                	e.printStackTrace();                }                break;            }            gifdecoder.clear();            gifdecoder = null;            return GF;        } catch (Exception e) {        	System.out.println("创建帧出错"+e.toString());        	e.printStackTrace();            return null;        }    }    }

⌨️ 快捷键说明

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