Fresco
Gradle
compile 'com.facebook.fresco:fresco:0.12.0'
注意
在列表中直接使用setImageURI会出现页面卡顿和图片显示不全或出现纯白色、纯黑色的问题。
FrescoUtils
/**
* Created by LiangMaYong on 2016/8/22.
*/
public class FrescoUtils {
private static boolean isInit = false;
/**
* showThumb
*
* @param draweeView draweeView
* @param url url
* @param resizeWidthDp resizeWidth
* @param resizeHeightDp resizeHeight
*/
public static void showThumb(SimpleDraweeView draweeView, String url, int resizeWidthDp, int resizeHeightDp) {
if (url == null || "".equals(url))
return;
if (draweeView == null)
return;
initialize(draweeView.getContext());
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url))
.setResizeOptions(new ResizeOptions(DimenUtils.dip2px(draweeView.getContext(), resizeWidthDp), DimenUtils.dip2px(draweeView.getContext(), resizeHeightDp)))
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(draweeView.getController())
.setControllerListener(new BaseControllerListener<ImageInfo>())
.build();
draweeView.setController(controller);
}
/**
* initialize
*
* @param context context
*/
public static void initialize(Context context) {
if (isInit)
return;
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context)
.setDownsampleEnabled(true)
.build();
Fresco.initialize(context, config);
isInit = true;
}
}
本文介绍了一种使用Fresco进行图片加载的优化方法,通过自定义的FrescoUtils类实现图片缩放,避免了直接使用setImageURI导致的页面卡顿及图片显示不全等问题。该方法还介绍了如何初始化Fresco并设置ImagePipelineConfig。
1191

被折叠的 条评论
为什么被折叠?



