android显示网络gif图片
为什么80%的码农都做不了架构师?>>>
这功能源自负责app中要加一个显示gif广告图功能。
android自带控件不支持gif图片,网上很多通过扩展ImageView或View来实现支持gif图片,但在android4.0后,需要关闭硬件加速功能才能使用,而且也容易出现内存溢出问题。
网上找了两个开源包来实现显示Gif图
android-gif-drawable 支持gif显示的view控件
项目地址:https://github.com/koral--/android-gif-drawable,
(如果访问不了,可以此这里下载)
用jni实现的,编译生成so库后直接xml定义view,据说性能比较好,也能比较好避免内存内存溢出问题。
在Android Studio项目添加使用:
build.gradle文件dependencies添加内容:
dependencies {
compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+' /* 添加gif控件库引用 */
}
xUtils
项目地址:https://github.com/wyouflf/xUtils
包含了很多实用的android工具,这里主要用它下载文件
MainActivity.java
package com.penngo.gif;import android.app.Activity;
import android.content.Context;
import android.os.Environment;
import android.os.Bundle;
import android.util.Log;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;import java.io.File;import pl.droidsonroids.gif.GifDrawable;
import pl.droidsonroids.gif.GifImageView;/**** https://github.com/koral--/android-gif-drawable* https://github.com/wyouflf/xUtils*/
public class MainActivity extends Activity {private final String tag = "MainActivity-->";private GifImageView gif1;private GifImageView gif2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gif1 = (GifImageView)this.findViewById(R.id.info_gif1);gif2 = (GifImageView)this.findViewById(R.id.info_gif2);initGif();}private void initGif(){String url1 = "http://img5.imgtn.bdimg.com/it/u=3026352344,1511311477&fm=21&gp=0.jpg";String url2 = "http://img5.imgtn.bdimg.com/it/u=808161139,2623525132&fm=21&gp=0.jpg";File saveImgPath = this.getImageDir(this);File gifSavePath1 = new File(saveImgPath, "gif1");File gifSavePath2 = new File(saveImgPath, "gif2");displayImage(url1, gifSavePath1, gif1);displayImage(url2, gifSavePath2, gif2);}public void displayImage(String url, File saveFile, final GifImageView gifView){HttpUtils http = new HttpUtils();// 下载图片http.download(url, saveFile.getAbsolutePath(), new RequestCallBack<File>() {public void onSuccess(ResponseInfo<File> responseInfo) {try {Log.e(tag, "onSuccess========" + responseInfo.result.getAbsolutePath());GifDrawable gifFrom = new GifDrawable( responseInfo.result.getAbsolutePath() );gifView.setImageDrawable(gifFrom);}catch(Exception e){Log.e(tag, e.getMessage());}}public void onFailure(HttpException error, String msg) {Log.e(tag, "onFailure========" + msg);}});}public File getFilesDir(Context context, String tag){if(isSdCardExist() == true){return context.getExternalFilesDir(tag);}else{return context.getFilesDir();}}public File getImageDir(Context context){File file = getFilesDir(context, "images");return file;}public boolean isSdCardExist() {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {return true;}return false;}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><TextView android:text="@string/label_info"android:id="@+id/info"android:layout_width="wrap_content"android:layout_height="wrap_content" /><!-- gif控件 --><pl.droidsonroids.gif.GifImageViewandroid:id="@+id/info_gif1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="fitXY"android:layout_below="@+id/info"/><pl.droidsonroids.gif.GifImageViewandroid:id="@+id/info_gif2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="fitXY"android:layout_below="@+id/info_gif1"/>
</RelativeLayout>
运行效果:
下载
转载于:https://my.oschina.net/penngo/blog/481489
android显示网络gif图片相关推荐
- android加载网络gif图片不显示不出来的,android显示网络gif图片
这功能源自负责app中要加一个显示gif广告图功能. android自带控件不支持gif图片,网上很多通过扩展ImageView或View来实现支持gif图片,但在android4.0后,需要关闭硬件 ...
- android 代码获取图片信息吗,Android 通过网络获取图片的代码
Android 通过网络获取图片的代码 主activity package com.netimg; import android.app.Activity; import android.graphi ...
- android gif动态显示,Android 显示Gif 动态图片
项目(showgif)已推到GitHub,查看文末的链接即可下载. 显示如下一张Gif动态图片: 看一下在demo中的效果: 按钮用来暂停和继续.看一下代码逻辑实现: package com.zms. ...
- android imageview 显示资源图片,ImageView显示网络图片资源
Android ImageView如何加载网络图片资源有些事,可以看透,但不要看破;有些人,可以看穿,但不要戳穿;有些话,能不说就沉默,藏在心里更适合;有些伤,能不揭就不提起,无声忘记更明智. 用im ...
- Android Glide加载图片、网络监听、设置资源监听
Glide加载图片.加载进度监听 前言 正文 一.项目配置 二.显示网络图片 三.添加设置资源监听 四.添加设置资源监听 五.添加加载进度条 六.封装工具类 七.源码 总结 前言 在日常开发中使用 ...
- android listview网络图片,Android ListView从网络获取图片及文字显示
上一篇文章说的是ListView展示本地的图片以及文本,这一篇说一下如何从网络获取图片以及文本来显示.事实上,一般是先获取Josn或sml数据,然后解释显示.我们先从网上获取xml,然后对其进行解析, ...
- Android ListView从网络获取图片及文字显示
原帖地址:http://blog.csdn.net/wangjinyu501/article/details/8219317 上一篇文章说的是ListView展示本地的图片以及文本,这一篇说一下如何从 ...
- Android通过网络URL获取图片并显示
1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:to ...
- android网络下载图片并且显示在图库中
1:网络下载图片 主要是练习网络编程,获取网络数据.不能使用网络资源的软件是很难有长足的发展和进步的,个人觉得,所以最近在学习网络相关的编程.这里就把我做的demo发在这里,同时我也梳理一下知识点.废 ...
最新文章
- Redis大集群扩容性能优化实践
- centos 6.8 搭建svn服务器
- 聊聊前后端分离的接口规范
- 图像添加柯西分布噪声
- 机房工程施工细节标准做法,每张图都有说明
- c语言程序为什么运行一半就自动关闭了,C语言为什么程序运行一半就出现停止工作...
- 我们为何要使用多线程,它有什么优点?
- GOF设计模式之桥接模式
- Charm Bracelet(信息学奥赛一本通-T1294)
- 隐瞒英特尔重大安全漏洞惹众怒,苹果遭遇集体诉讼
- jquery中select操作append、prepend、remove、find、val、get、selectedIndex、attr、option
- VASP、Lammps快速上手神器——MedeA软件
- bp神经网络模型的优缺点,什么是BP神经网络模型?
- cogs——2098. Asm.Def的病毒
- linux运维 对比 网络_网络工程师和Linux运维工程师存在哪些差异
- java中获取一个集合(Set)的子集的方法
- 【项目】区块链+人工智能 ---PAI白皮书分析(二)
- 《南茜的早晨》与《亡命鸡礼花》的dvd和原声音乐cd……大雅与大俗……Orz
- python爬取蚂蜂窝帖子图片
- shell网络编程netstat
热门文章
- 用AI帮你画新年贺卡:只需输入几个单词,就能模仿大师名作
- Siri在苹果继续活着、蠢着、没落着,现在它最后一个创始人也走了
- 通过图灵测试!Google掌舵人说“打电话AI”是一次非凡突破
- cygwin 解决 乱码问题 (转)
- 51nod 1062 序列中最大的数【打表】
- WebView 简介
- Qt网络应用----socket通信例子
- 静态路由实现负载均衡和高可用
- Poco官方PPT_020-ErrorHandlingAndDebugging双语对照翻译
- 学习和考取HCIE的普遍经典过程,你肯定是遇到了其中的某些问题?这里有你要的答案...