本文共 1695 字,大约阅读时间需要 5 分钟。
compile 'com.facebook.fresco:fresco:0.12.0'//以下是加载Gif使用,按需添加compile 'com.facebook.fresco:animated-gif:0.12.0'
根据需要配置需要的jni库,在module的build.gradle中配置
buildTypes { debug { ndk { abiFilters = ["armeabi"] } ... }}
在Application中或者MainActivity中调用:
Fresco.initialize(this);
加载图片一般是给SimpleDraweeView添加Uri,具体的参见Fresco加载图片封装
我们经常在列表中显示图片,为了减少列表的卡顿现象,需要在列表滚动时暂停加载图片,当停止滚动时再恢复加载.
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类似,请自行设置.
当图片改变时我们需要清除缓存重新加载,可调用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,如需转载请自行联系原作者