Github: https://github.com/koral--/android-gif-drawable

官网上有它的一些详细介绍,使用方法也较简单。这里就不赘述了


不过如果是要加载网络上的gif图片,那么需要自行写一些代码才能实现的。 

/** * 加载图片 */public void loadImg(final String url) {    if (url != null) {        new Thread(){            @Override            public void run() {                super.run();                try {                    HttpClient httpclient = new DefaultHttpClient();//apache httpclient                    // 创建Get方法实例                    HttpGet httpgets = new HttpGet(url);                    HttpResponse response = null;                    response = httpclient.execute(httpgets);                    HttpEntity entity = response.getEntity();                    final ByteArrayOutputStream bos = new ByteArrayOutputStream();                    byte[] buffer = new byte[1024];                    if (entity != null) {                        InputStream is = entity.getContent();                        int len;                        while ((len = is.read(buffer)) != -1) {                            bos.write(buffer, 0, len);                        }                        bos.flush();                    }                    bos.close();                    if (BaseActivity.getInstance() != null && !BaseActivity.getInstance().isFinishing()) {                        BaseActivity.getInstance().runOnUiThread(new Runnable() {                            @Override                            public void run() {                                try {                                    mDrawable = new GifDrawable(bos.toByteArray());                                    setBackgroundDrawable(mDrawable);                                    mDrawable.start();                                } catch (IOException e) {                                    e.printStackTrace();                                }                            }                        });                    }                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }}

核心代码即是:创建一个GifDrawable


当app中本身也有so库时,可能会报

java.lang.UnsatisfiedLinkError

因为,该gif库会生成多个abi的目录。而我们项目本身的abi目录可能不全;进而导致在某些相应api机型上

适配时,在相应api目录下找不到除了gif-so文件之外的其它so文件,而报异常


在studio中,如果app/build/ 目录下,如果能找到相应的aar文件,那只需要用解压打开并删除多余abi目录;

再将该aar 放到项目的libs目录下;最后

dependencies {
    compile(name:'android-gif-drawable', ext:'aar')
}


不知道是不是因为我这是mac系统的关系,反正我是没找到具体的aar文件,而是只看到了展开后的目录:

app/build/intermediates/exploded-aar/ 

在Android Studio中展开这个目录,能看到该gif库的目录;

将其中的so,我这里只取了armeabi目录的,移动到项目的jniLibs下;

将classes.jar重命名后,移动到项目的libs下;

将values.xml定义的copy到项目中;

将混淆规则写入到项目中的混淆文件里。

最后打包没有通过,只得在混淆中再加了一句  -ignorewarnings

终于打包过了


更多相关文章

  1. 最全的Android源码目录结构详解
  2. --android studio 使用gradle 导出jar包,并打包assets目录
  3. Android开发 使用Lame把音频文件转换成mp3格式
  4. 解决用Android Studio开发项目如何放置assets文件夹
  5. Android优秀开源组件项目集合
  6. 高手速成android开源项目【项目篇】
  7. 【转】android开源项目---项目篇
  8. 高手速成android开源项目【developer篇】
  9. google android 项目

随机推荐

  1. Android(安卓)Gesture 手势识别使用实例
  2. android 测试读取LEB数据的函数
  3. Android 实现文件的下载
  4. android 格式化SD卡
  5. Android跨进程通信IPC之15——Binder之na
  6. android pm 和 install 选项 命令
  7. 转:android 调用系统的接口
  8. Android第二十一课 Jni日志打印以及注意
  9. android 引用工程作为类库
  10. Android URL中参数的获取、拼接及修改