Fresco 使用笔记(一):加载gif图片并播放 您所在的位置:网站首页 image/cfop/f2l36_1.gif Fresco 使用笔记(一):加载gif图片并播放

Fresco 使用笔记(一):加载gif图片并播放

2022-03-26 14:49| 来源: 网络整理| 查看: 265

项目中图文混合使用的太多太多了,但是绝大部分都是静态图片。

然而现在项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示

比如说:一个功能提供很多步骤来教用户做广播体操,那么第一步就显示一个3秒钟的动作图,第二步显示一个几秒钟的动作图。(当然这个需求不是这个功能)

怎么解决呢:一确定这个需求我的第一实现思路便是让美工给我搞几个连续的图片,我使用帧动画来轮回播放 便实现了这个动画。

但是帧动画使用起来太复杂了,一套动作我要搞好久来实现。那么就想Android中支持不支持播放gif格式的图片呢,让美工搞动态图我直接拿来用多方便。

-------------------------------------------------------------------------------------------------------------------

然后我就发现了Fresco,官方网址: http://www.fresco-cn.org/ ,中文文档,很方便查阅

看下官方的描述:

Fresco 是一个强大的图片加载组件。 Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。 Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。 Fresco 支持 Android2.3(API level 9) 及其以上系统。

------------------------------------------------------------------------------------------------------------------

其他的不管,这篇博客只要看Fresco特性之一:

支持 gif 动态图片     ,也许我们会构造一些自定义的类来实现,但是太复杂了,也太麻烦了,Fresco直接帮你封装好了

------------------------------------------------------------------------------------------------------------------

那么开始看怎么使用Fresco加载显示gif格式的图片了

1、必须要做的事,当然看官方文档也能知道,如何引入Fresco到项目中

Android Studio 或者 Gradle dependencies { compile 'com.facebook.fresco:fresco:0.6.0+' }

IDEA 和 Eclipse 就是别的方法了,具体看下 http://www.fresco-cn.org/docs/index.html#_

2、配置清单文件添加网络权限,这里具体获取网络gif图片并展示的Demo,加载本地的gif图片 可以不加网络权限

3、布局文件中的使用

(1)xml文件中,加入命名空间,用于给图片设置一些属性

(2)既然是gif图片,当然也就是图片,而当我们把Fresco导入到项目之后,就有了

com.facebook.drawee.view.SimpleDraweeView 类

1 // 2 // Source code recreated from a .class file by IntelliJ IDEA 3 // (powered by Fernflower decompiler) 4 // 5 6 package com.facebook.drawee.view; 7 8 import android.content.Context; 9 import android.net.Uri; 10 import android.util.AttributeSet; 11 import com.facebook.common.internal.Preconditions; 12 import com.facebook.common.internal.Supplier; 13 import com.facebook.drawee.generic.GenericDraweeHierarchy; 14 import com.facebook.drawee.interfaces.DraweeController; 15 import com.facebook.drawee.interfaces.SimpleDraweeControllerBuilder; 16 import com.facebook.drawee.view.GenericDraweeView; 17 import javax.annotation.Nullable; 18 19 public class SimpleDraweeView extends GenericDraweeView { 20 private static Supplier


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有