package com.team.zhuoke.utils; import android.content.Context; import android.content.res.Resources; import android.net.Uri; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.controller.BaseControllerListener; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder; import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.common.ResizeOptions; import com.facebook.imagepipeline.core.ImagePipelineConfig; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; /** * Author: yolanda * <p> * CreateTime: 2016/9/22 0022 上午 10:50 * <p> * description:Fresco 使用API */ public class FrescoUtils { /** * Author: yolanda * <p> * CreateTime: 2016/9/22 0022 下午 1:42 * <p> * description:显示图片 * * @param simpleDraweeView 显示图片的控件 * @param url 图片加载的url * @param resources 在Activity中直接使用getResource方法即可 * @param fadeDuration 渐变加载的时间 * @return */ public static void showPic(SimpleDraweeView simpleDraweeView, String url, Resources resources, int fadeDuration) { GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(resources) .setFadeDuration(fadeDuration) .build(); simpleDraweeView.setHierarchy(hierarchy); simpleDraweeView.setImageURI(Uri.parse(url)); } private static boolean isInit = false; /** * Author: yolanda * <p> * CreateTime: 2016/9/22 下午 1:42 * <p> * description:显示图片的缩略图 */ 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( resizeWidthDp,resizeHeightDp)) .build(); DraweeController controller = Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(draweeView.getController()) .setControllerListener(new BaseControllerListener<>()) .build(); draweeView.setController(controller); } /** * Author: yolanda * <p> * CreateTime: 2016/9/22 下午 1:42 * <p> * description: */ public static void initialize(Context context) { if (isInit) return; ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context) .setDownsampleEnabled(true) .build(); Fresco.initialize(context, config); isInit = true; } }