zoukankan      html  css  js  c++  java
  • android GIF

    package com.leepood.gifmaker;
    import android.graphics.Bitmap;
    import android.util.Log;
    
    public class GifUtil {
    
    	private final String TAG=this.getClass().getName();
    	static
    	{
    		System.loadLibrary("gifflen");
    	}
    
    	/**
    	 * Init the gif file
    	 * @param gifName name
    	 * @param w width
    	 * @param h height
    	 * @param numColors colors
    	 * @param quality
    	 * @param frameDelay times
    	 * @return
    	 */
    	public native int Init(String gifName, int w, int h, int numColors, int quality,
                int frameDelay);
    
    	/*
    	 * close
    	 *
    	 */
    	public native void Close();
    
    	public native int AddFrame(int[] pixels);
    
    	/**
    	 * encode the bitmaps to gif
    	 * @param fileName
    	 * @param bitmaps
    	 * @param delay
    	 */
    	public void Encode(String fileName,Bitmap[] bitmaps,int delay)
    	{
    		if(bitmaps==null||bitmaps.length==0)
    		{
    			throw new NullPointerException("Bitmaps should have content!!!");
    
    		}
    		int width=bitmaps[0].getWidth();
    		int height=bitmaps[0].getHeight();
    
    		if(Init(fileName,width,height,256,100,delay)!=0)
    		{
    			Log.e(TAG, "GifUtil init failed");
    			return;
    		}
    
    		for(Bitmap bp:bitmaps)
    		{
    
    			int pixels[]=new int[width*height];	
    
    			bp.getPixels(pixels, 0, width, 0, 0, width, height);
    			AddFrame(pixels);
    		}
    
    		Close();
    
    	}
    
    }
    

    首先NDK的环境搭建我就不讲了,这些可以查网上的,首选去http://jiggawatt.org/badc0de/android/index.html#gifflen 下载gifflen的源码来编译。下载到源码之后我们要做的就是修改下方法名称,NDK里面书写方法的名称需同你native 类的包名相同,举个例子我的native方法类的完整路径是:com.leepood.gifmaker.GifUtil 那么我需要将下载回来的源码里面的jni call的方法名称改为以Java_com_leepood_gifmaker_GitUtil_开头,这样一切就OK拉,于是NDK编译得到libgifflen.so文件,于是在java里面调用,如上代码

       GIF播放使用  http://code.google.com/p/gifview/

  • 相关阅读:
    uniapp开发微信小程序
    requests自动登录禅道并提交bug 测试
    [转载]使用CPU时间戳进行高精度计时
    lu面
    音量控制面板项目说明
    【转载】粤语翻译工具
    专业操盘手的买卖法则
    自动刷新查询火车票脚本
    股东权益和权益比
    异形魔方SQ1的暴力解法
  • 原文地址:https://www.cnblogs.com/pandans/p/2335517.html
Copyright © 2011-2022 走看看