很多时候由于项目的需要,我们需要加载Gif的图片,实现动画效果,但是android本身并不支持直接加载Gif图片。因此网络上出现了很多关于android加载Gif图片的框架。今天在这里就为大家介绍其中的两个框架,一个是Xutils3.0,一个是android-gif-drawable的开源库。其中使用Xutils会出现适配的问题。所以这里不推荐在项目使用。

MainActivity.javapublic class MainActivity extends Activity implements View.OnClickListener {private Button mFirst;//使用android开源库加载private Button mSecond;//使用xutils加载private Context mContext;private Intent mIntent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = this;initView();}//初始化Viewprivate void initView() {mFirst = (Button) findViewById(R.id.btn_gif);mSecond = (Button) findViewById(R.id.btn_xutils);mFirst.setOnClickListener(this);mSecond.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_gif:mIntent = new Intent(mContext, GifImageViewActivity.class);startActivity(mIntent);break;case R.id.btn_xutils:mIntent = new Intent(mContext, XutilsActivity.class);startActivity(mIntent);break;}}
}
GifImageViewActivity.javapublic class GifImageViewActivity extends Activity {private GifImageView mGifImageView;//显示Gif的GifImageView@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gif_imageview);initView();}//初始化Viewprivate void initView() {mGifImageView = (GifImageView) findViewById(R.id.imageView);//gif 代码控制播放速度try {GifDrawable gifDrawable = new GifDrawable(getResources(), R.drawable.test);gifDrawable.setSpeed(0.6f);mGifImageView.setImageDrawable(gifDrawable);} catch (IOException e) {e.printStackTrace();}}
}
XutilsActivity.javapublic class XutilsActivity extends Activity {private ImageView mImageView;//显示gif的imageview@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_xutils);initView();}//初始化Viewprivate void initView() {mImageView = (ImageView) findViewById(R.id.xutils_imageview);ImageOptions imageOptions = new ImageOptions.Builder().setIgnoreGif(false)//是否忽略gif图。false表示不忽略。不写这句,默认是true.setImageScaleType(ImageView.ScaleType.FIT_CENTER).build();x.image().bind(mImageView, "assets://test.gif", imageOptions);}
}
activity_gif_imageview.xml<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:background="#ffffff"android:layout_height="match_parent"><pl.droidsonroids.gif.GifImageView
        android:layout_width="match_parent"android:layout_height="match_parent"android:layout_centerInParent="true"android:scaleType="fitCenter"android:id="@+id/imageView"android:layout_marginRight="30dp"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"/>
</RelativeLayout>

注:使用Xutils时需要在BaseApplication进行初始化x.Ext.init(this);
附:源码下载地址

android中加载Gif图片相关推荐

  1. 浅谈android中加载高清大图及图片压缩方式(二)

    这一讲就是本系列的第二篇,一起来聊下关于android中加载高清大图的问题,我们都知道如果我们直接加载原图的话,一个是非常慢,需要等待一定时间,如果没有在一定的时间内给用户响应的话,将会极大影响用户的 ...

  2. Android 高效加载大图片

    来源:http://www.open-open.com/lib/view/open1389755918242.html 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状 ...

  3. Android Glide加载圆形图片、圆角图片,部分圆角图片的使用方法

    Android Glide加载圆形图片.圆角图片,部分圆角图片的使用方法 前言 Gilde圆形图片/头像 Gilde普通圆角图片即四个角都是圆角 Gilde对指定角设置圆角 前言 通过本文,您可以实现 ...

  4. Android中加载事件的方式

    Android中加载事件的方式 通过内部类的方式实现 通过外部类的方式实现 通过属性的方式实现 通过自身实现接口的方式实现 通过内部类的方式实现 Demo btn_Login.setOnClickLi ...

  5. android webview加载html图片自适应手机屏幕大小点击查看大图

    我们在开发中,显示信息详情时,一般后台会给出html文本,在android端一般采用webview控件来展示,但是后台给出的html文本一般是给电脑端用的,没有自适配手机,导致手机端图片显示过大,需要 ...

  6. Android实现加载(loading)图片旋转的三种方式

    我们在Android应用开发中可能经常用到类似如下效果的加载过程中的图片旋转效果: 上面的图片是一张gif格式的动态图片,我们知道,在Android中对gif动态图片的支持是不好的.可以通过第三方ja ...

  7. QT控件之(QLabel)中加载了图片想清除掉

    这个时候直接在你加载图片的那个label中使用如下代码:清除label中加载过来的图片 label.clear(): qt学习推荐: 百度云盘:链接:https://pan.baidu.com/s/1 ...

  8. Android Glide 加载圆形图片(绝对实用)

    1.导入依赖 implementation 'com.github.bumptech.glide:glide:4.6.1' 2.用Glide加载圆形图片 Glide.with(context).loa ...

  9. Android Glide加载圆形图片,设置圆形边框

    Glide加载图片,Glide可以很方便的实现圆形加载并且也还可以设置变色边框. 关于Glide的加载在这里不详细说了,主要说一下自定义BitmapTransformation来实现圆形图片加载 st ...

最新文章

  1. Nginx 从安装到高可用
  2. 如何优雅地训练大型模型?
  3. linux 非交互ssh sshpass简介
  4. thinkphp几个表的数据合并,并用数组分页
  5. 2.3.3 spring属性注入-注解注入-全注解-配置类扫描
  6. springboot整合shiro-关于登出时,redis中缓存没有清理干净的问题
  7. 20190101.DDD笔记
  8. Python 使用@property对属性进行数据规范性校验
  9. 小心,信用卡销卡后,竟然变成黑名单!
  10. python天气数据分析可视化_python可视化爬虫界面之天气查询
  11. 推荐:绝对是最好用的公式编辑器
  12. 1-7 Graph 可视化
  13. PyQt4--QPushButton(click)类的信号
  14. SPSS/PROCESS-中介检验
  15. 分布式系统-共识协议
  16. Vulnhub_Napping
  17. 韦根w34是多少位_Levi's裤子尺码中的W34和L34各是多少厘米?
  18. 超大容量充电宝哪个好,大容量移动充电宝哪个品牌好?
  19. 恒讯科技分析:国内游戏服务器租用市场的大致情况怎么样呢?
  20. JS逆向加密——美团店铺详情_token参数

热门文章

  1. 微生物16S测序数据的正确打开方式
  2. numpy序列预处理dna序列_合成生物学快讯2019年第12期:基于DNA的分子数字数据存储...
  3. 透明网关与透明防火墙
  4. 五星好评html编写,五星好评.html
  5. Linux命令修改文件名和文件夹名
  6. 我的2021年终回顾:一如少年,眼眸有星辰,心中有山海
  7. 5分钟理解Iass Pass SasS三种云服务区别
  8. vscode 下编译k210
  9. 1. Vue CLI脚手架
  10. 【译】Jep文档(4)——数据类型(Data Type)