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;
}
}