Fresco的使用及注意事项

简介:

Fresco的使用及注意事项

添加引用

1.build.gradle添加依赖

compile 'com.facebook.fresco:fresco:0.12.0'
//以下是加载Gif使用,按需添加
compile 'com.facebook.fresco:animated-gif:0.12.0'

2.配置Jni库

根据需要配置需要的jni库,在module的build.gradle中配置

buildTypes {
    debug {
        ndk {
            abiFilters = ["armeabi"]
        }
        ...
    }
}

基本使用

1.初始化

在Application中或者MainActivity中调用:

Fresco.initialize(this);

2.加载基本的图片

加载图片一般是给SimpleDraweeView添加Uri,具体的参见Fresco加载图片封装

注意事项

1.列表中加载图片,滚动时请暂停加载.

我们经常在列表中显示图片,为了减少列表的卡顿现象,需要在列表滚动时暂停加载图片,当停止滚动时再恢复加载.

ListView中设置暂停恢复加载:

listView.setOnScrollListener(new AbsListView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) { case AbsListView.OnScrollListener.SCROLL_STATE_FLING: case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: //ImageLoader.pauseLoader(); if (!Fresco.getImagePipeline().isPaused()) { Fresco.getImagePipeline().pause(); } break; case AbsListView.OnScrollListener.SCROLL_STATE_IDLE: //ImageLoader.resumeLoader(); if (Fresco.getImagePipeline().isPaused()) { Fresco.getImagePipeline().resume(); } break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } });

RecyclerView与ListView类似,请自行设置.

2.图片必须设置为具体尺寸或者match_parent

3.清除缓存

当图片改变时我们需要清除缓存重新加载,可调用Fresco提供的方法.清除缓存分为清除内存缓存和清除磁盘缓存.

public static void clearDiskCache(Uri uri) { Fresco.getImagePipeline().evictFromDiskCache(uri); } public static void clearMemoryCache(Uri uri) { Fresco.getImagePipeline().evictFromMemoryCache(uri); }

未完待续...

Fresco还在使用中,此文会随着使用更新注意事项.



    本文转自 一点点征服   博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/6646779.html,如需转载请自行联系原作者


相关文章
|
8月前
|
Android开发
Android手写占位式插件化框架之apk解析原理系统源码分析
Android手写占位式插件化框架之apk解析原理系统源码分析
76 0
|
存储 Java API
【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
190 0
【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
|
Android开发
【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
183 0
|
存储 缓存 Android开发
【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )(一)
【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )(一)
262 0
【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )(一)
|
存储 缓存 API
【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )(二)
【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )(二)
159 0
|
API Android开发
【Android 内存优化】Bitmap 长图加载 ( BitmapRegionDecoder 简介 | BitmapRegionDecoder 使用流程 | 区域解码加载示例 )
【Android 内存优化】Bitmap 长图加载 ( BitmapRegionDecoder 简介 | BitmapRegionDecoder 使用流程 | 区域解码加载示例 )
272 0
【Android 内存优化】Bitmap 长图加载 ( BitmapRegionDecoder 简介 | BitmapRegionDecoder 使用流程 | 区域解码加载示例 )
|
存储 缓存 Java
图片加载框架-Picasso最详细的使用指南
图片加载框架-Picasso最详细的使用指南
图片加载框架-Picasso最详细的使用指南
|
缓存 Android开发
Anroid笔记:Android图片加载框架Glide用法
Anroid笔记:Android图片加载框架Glide用法
169 0
|
Android开发 编解码
Android压缩大图官方写法
前言:之前写多媒体的时候,加载图片使用的Picasso框架,但图片列表很多依然有oom的问题,原来的图片分辨率(5024*4280)太大了,遂要压缩图片 对于一张5024*4280的图片(ARGB_8888 )来说,系统要分配多少内存呢?计算方法如下 5024*4280*4byte 约等 82.
876 0
|
Android开发 开发者
Android新版Glide的RequestManager加载管理器
Android新版Glide的RequestManager加载管理器 使用Glide加载图片,load完后,通过into就可以把图片放到ImageView里面。
1756 0