package com.doumee.lib_coremodel.http.utils; 
 | 
  
 | 
import android.content.Context; 
 | 
import android.graphics.Bitmap; 
 | 
import android.net.Uri; 
 | 
import android.text.TextUtils; 
 | 
import com.facebook.common.executors.UiThreadImmediateExecutorService; 
 | 
import com.facebook.common.references.CloseableReference; 
 | 
import com.facebook.common.util.UriUtil; 
 | 
import com.facebook.datasource.BaseDataSubscriber; 
 | 
import com.facebook.datasource.DataSource; 
 | 
import com.facebook.datasource.DataSubscriber; 
 | 
import com.facebook.drawee.backends.pipeline.Fresco; 
 | 
import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; 
 | 
import com.facebook.drawee.controller.ControllerListener; 
 | 
import com.facebook.drawee.drawable.ScalingUtils; 
 | 
import com.facebook.drawee.generic.GenericDraweeHierarchy; 
 | 
import com.facebook.drawee.interfaces.DraweeController; 
 | 
import com.facebook.drawee.view.DraweeView; 
 | 
import com.facebook.drawee.view.SimpleDraweeView; 
 | 
import com.facebook.fresco.helper.ImageLoader; 
 | 
import com.facebook.fresco.helper.blur.BitmapBlurHelper; 
 | 
import com.facebook.fresco.helper.listener.IResult; 
 | 
import com.facebook.imagepipeline.animated.base.AnimatedImageResult; 
 | 
import com.facebook.imagepipeline.common.ImageDecodeOptions; 
 | 
import com.facebook.imagepipeline.common.ResizeOptions; 
 | 
import com.facebook.imagepipeline.common.RotationOptions; 
 | 
import com.facebook.imagepipeline.core.ImagePipeline; 
 | 
import com.facebook.imagepipeline.image.CloseableAnimatedImage; 
 | 
import com.facebook.imagepipeline.image.CloseableBitmap; 
 | 
import com.facebook.imagepipeline.image.CloseableImage; 
 | 
import com.facebook.imagepipeline.image.ImageInfo; 
 | 
import com.facebook.imagepipeline.request.BasePostprocessor; 
 | 
import com.facebook.imagepipeline.request.ImageRequest; 
 | 
import com.facebook.imagepipeline.request.ImageRequestBuilder; 
 | 
  
 | 
import timber.log.Timber; 
 | 
//import com.nostra13.universalimageloader.core.assist.ImageSize; 
 | 
  
 | 
  
 | 
/** 
 | 
 * Created by Administrator on 2017/9/18. 
 | 
 */ 
 | 
  
 | 
public class FrescoUtils { 
 | 
    public interface ImageLoadingListener { 
 | 
        void onSuccess(Bitmap var1); 
 | 
  
 | 
        void onFailure(); 
 | 
    } 
 | 
  
 | 
    public static void clearMeary(){ 
 | 
        /*ImagePipeline imagePipeline = Fresco.getImagePipeline(); 
 | 
        imagePipeline.clearMemoryCaches(); 
 | 
        imagePipeline.clearDiskCaches(); 
 | 
        // combines above two lines 
 | 
        imagePipeline.clearCaches();*/ 
 | 
    } 
 | 
  
 | 
    /*public static void displayImageFresco(String url, SimpleDraweeView draweeView) { 
 | 
        *//*if(url!=null){ 
 | 
            url="http://picture.yxshow.tv/default.jpg"; 
 | 
        }*//* 
 | 
        try { 
 | 
            if(TextUtils.isEmpty(url)){ 
 | 
                draweeView.setImageURI((new Uri.Builder()).scheme("res").path(String.valueOf(R.mipmap.circle_nomal_pic)).build()); 
 | 
            }else { 
 | 
                //draweeView.setImageURI(url); 
 | 
                ImageLoader.loadImage(draweeView,url,false); 
 | 
            } 
 | 
  
 | 
        }catch (Exception e){ 
 | 
  
 | 
        } 
 | 
        *//*ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri).build(); 
 | 
        DraweeController controller = Fresco.newDraweeControllerBuilder() 
 | 
                .setImageRequest(request).setAutoPlayAnimations(true).build(); 
 | 
        draweeView.setController(controller);*//* 
 | 
    }*/ 
 | 
  
 | 
    public static void displayImageFresco(final String url, final SimpleDraweeView simpleDraweeView) { 
 | 
        if(url==null){ 
 | 
            return; 
 | 
        } 
 | 
        DraweeController controller = Fresco.newDraweeControllerBuilder() 
 | 
                .setUri(Uri.parse(url)) 
 | 
                .setRetainImageOnFailure(false) 
 | 
                .setTapToRetryEnabled(false) 
 | 
                .setOldController(simpleDraweeView.getController()) 
 | 
                .build(); 
 | 
  
 | 
        simpleDraweeView.setController(controller); 
 | 
    } 
 | 
  
 | 
    /* 
 | 
    isUnGIF:是否要去除gif 
 | 
    * */ 
 | 
    public static void displayImageFresco(final String url, final SimpleDraweeView simpleDraweeView, final boolean isSmall, final boolean isGIF, int type) { 
 | 
        GenericDraweeHierarchy hierarchy = simpleDraweeView.getHierarchy(); 
 | 
        /*if(isSmall){ 
 | 
            hierarchy.setPlaceholderImage(R.drawable.default_user_head); 
 | 
        }else { 
 | 
            hierarchy.setPlaceholderImage(R.mipmap.circle_nomal_pic); 
 | 
        }*/ 
 | 
  
 | 
        if(type==1){ 
 | 
            hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER); 
 | 
        }else { 
 | 
            hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP); 
 | 
        } 
 | 
  
 | 
        try { 
 | 
            if(TextUtils.isEmpty(url)){ 
 | 
                if(isSmall){ 
 | 
                    //simpleDraweeView.setImageURI((new Uri.Builder()).scheme("res").path(String.valueOf(R.drawable.default_user_head)).build()); 
 | 
                }else { 
 | 
                    //simpleDraweeView.setImageURI((new Uri.Builder()).scheme("res").path(String.valueOf(R.mipmap.circle_nomal_pic)).build()); 
 | 
                } 
 | 
            }else { 
 | 
                simpleDraweeView.post(new Runnable() { 
 | 
                    @Override 
 | 
                    public void run() { 
 | 
                        int width = simpleDraweeView.getWidth(); 
 | 
                        int height = simpleDraweeView.getHeight(); 
 | 
                        if(isGIF){ 
 | 
                            ImageLoader.loadImage(simpleDraweeView, Uri.parse(url.trim()),width,height,null,null,isSmall); 
 | 
                        }else { 
 | 
                            loadImageUnGIF(simpleDraweeView, Uri.parse(url.trim()),width,height,null,null ,isSmall); 
 | 
                        } 
 | 
                    } 
 | 
                }); 
 | 
            } 
 | 
  
 | 
        }catch (Exception e){ 
 | 
  
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void displayImageFresco(final String url, final SimpleDraweeView simpleDraweeView, final boolean isSmall, int nomalPic) { 
 | 
        if(url==null){ 
 | 
            return; 
 | 
        } 
 | 
        GenericDraweeHierarchy hierarchy = simpleDraweeView.getHierarchy(); 
 | 
        if(nomalPic>0){ 
 | 
            hierarchy.setPlaceholderImage(nomalPic); 
 | 
        } 
 | 
  
 | 
        hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP); 
 | 
        try { 
 | 
            if(TextUtils.isEmpty(url)){ 
 | 
                if(isSmall){ 
 | 
                    //simpleDraweeView.setImageURI((new Uri.Builder()).scheme("res").path(String.valueOf(R.drawable.default_user_head)).build()); 
 | 
                }else { 
 | 
                    //simpleDraweeView.setImageURI((new Uri.Builder()).scheme("res").path(String.valueOf(R.mipmap.circle_nomal_pic)).build()); 
 | 
                } 
 | 
            }else { 
 | 
                simpleDraweeView.post(new Runnable() { 
 | 
                    @Override 
 | 
                    public void run() { 
 | 
                        int width = simpleDraweeView.getWidth(); 
 | 
                        int height = simpleDraweeView.getHeight(); 
 | 
                        ImageLoader.loadImage(simpleDraweeView, Uri.parse(url.trim()),width,height,null,null,isSmall); 
 | 
                    } 
 | 
                }); 
 | 
            } 
 | 
  
 | 
        }catch (Exception e){ 
 | 
  
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void loadImageUnGIF(SimpleDraweeView simpleDraweeView, 
 | 
                                      Uri uri, 
 | 
                                      final int reqWidth, 
 | 
                                      final int reqHeight, 
 | 
                                      BasePostprocessor postprocessor, 
 | 
                                      ControllerListener<ImageInfo> controllerListener, 
 | 
                                      boolean isSmall) { 
 | 
        ImageDecodeOptions options= ImageDecodeOptions.newBuilder().setForceStaticImage(true).setDecodePreviewFrame(true).build(); 
 | 
        ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri); 
 | 
        imageRequestBuilder.setImageDecodeOptions(options); 
 | 
        imageRequestBuilder.setRotationOptions(RotationOptions.autoRotate()); 
 | 
  
 | 
        // 不支持图片渐进式加载,理由:https://github.com/facebook/fresco/issues/1204 
 | 
        imageRequestBuilder.setProgressiveRenderingEnabled(false); 
 | 
  
 | 
        if (isSmall) { 
 | 
            imageRequestBuilder.setCacheChoice(ImageRequest.CacheChoice.SMALL); 
 | 
        } 
 | 
  
 | 
        if (reqWidth > 0 && reqHeight > 0) { 
 | 
            imageRequestBuilder.setResizeOptions(new ResizeOptions(reqWidth, reqHeight)); 
 | 
        } 
 | 
  
 | 
        if (UriUtil.isLocalFileUri(uri)) { 
 | 
            imageRequestBuilder.setLocalThumbnailPreviewsEnabled(true); 
 | 
        } 
 | 
  
 | 
        if (postprocessor != null) { 
 | 
            imageRequestBuilder.setPostprocessor(postprocessor); 
 | 
        } 
 | 
  
 | 
        ImageRequest imageRequest = imageRequestBuilder.build(); 
 | 
  
 | 
        PipelineDraweeControllerBuilder draweeControllerBuilder = Fresco.newDraweeControllerBuilder(); 
 | 
        draweeControllerBuilder.setOldController(simpleDraweeView.getController()); 
 | 
        draweeControllerBuilder.setImageRequest(imageRequest); 
 | 
  
 | 
        if (controllerListener != null) { 
 | 
            draweeControllerBuilder.setControllerListener(controllerListener); 
 | 
        } 
 | 
  
 | 
        draweeControllerBuilder.setTapToRetryEnabled(true); // 开启重试功能 
 | 
        draweeControllerBuilder.setAutoPlayAnimations(true); // 自动播放gif动画 
 | 
        DraweeController draweeController = draweeControllerBuilder.build(); 
 | 
        simpleDraweeView.setController(draweeController); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 从本地文件或网络获取Bitmap 
 | 
     * 
 | 
     * @param context 
 | 
     * @param url 
 | 
     * @param reqWidth 
 | 
     * @param reqHeight 
 | 
     * @param loadImageResult 
 | 
     */ 
 | 
    public static void loadImage(final Context context, 
 | 
                                 String url, 
 | 
                                 final int reqWidth, 
 | 
                                 final int reqHeight, 
 | 
                                 final IResult<Bitmap> loadImageResult) { 
 | 
        if (TextUtils.isEmpty(url)) { 
 | 
            //MLog.i("url is null"); 
 | 
            if(loadImageResult!=null){ 
 | 
                loadImageResult.onResult(null); 
 | 
            } 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        Uri uri = Uri.parse(url.trim()); 
 | 
        if (!UriUtil.isNetworkUri(uri)) { 
 | 
            uri = new Uri.Builder() 
 | 
                    .scheme(UriUtil.LOCAL_FILE_SCHEME) 
 | 
                    .path(url.trim()) 
 | 
                    .build(); 
 | 
        } 
 | 
  
 | 
        ImagePipeline imagePipeline = Fresco.getImagePipeline(); 
 | 
  
 | 
        ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri); 
 | 
        if (reqWidth > 0 && reqHeight > 0) { 
 | 
            imageRequestBuilder.setResizeOptions(new ResizeOptions(reqWidth, reqHeight)); 
 | 
        } 
 | 
        ImageRequest imageRequest = imageRequestBuilder.build(); 
 | 
  
 | 
        // 获取已解码的图片,返回的是Bitmap 
 | 
        DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest, context); 
 | 
        DataSubscriber dataSubscriber = new BaseDataSubscriber<CloseableReference<CloseableImage>>() { 
 | 
            @Override 
 | 
            public void onNewResultImpl(DataSource<CloseableReference<CloseableImage>> dataSource) { 
 | 
                if (!dataSource.isFinished()) { 
 | 
                    if (loadImageResult != null) { 
 | 
                        loadImageResult.onResult(null); 
 | 
                    } 
 | 
                    return; 
 | 
                } 
 | 
  
 | 
                CloseableReference<CloseableImage> imageReference = dataSource.getResult(); 
 | 
                if (imageReference != null) { 
 | 
                    final CloseableReference<CloseableImage> closeableReference = imageReference.clone(); 
 | 
                    try { 
 | 
                        CloseableImage closeableImage = closeableReference.get(); 
 | 
                        if (closeableImage instanceof CloseableAnimatedImage) { 
 | 
                            AnimatedImageResult animatedImageResult = ((CloseableAnimatedImage) closeableImage).getImageResult(); 
 | 
                            if (animatedImageResult != null && animatedImageResult.getImage() != null) { 
 | 
                                int imageWidth = animatedImageResult.getImage().getWidth(); 
 | 
                                int imageHeight = animatedImageResult.getImage().getHeight(); 
 | 
  
 | 
                                Bitmap.Config bitmapConfig = Bitmap.Config.ARGB_8888; 
 | 
                                Bitmap bitmap = Bitmap.createBitmap(imageWidth, imageHeight, bitmapConfig); 
 | 
                                animatedImageResult.getImage().getFrame(0).renderFrame(imageWidth, imageHeight, bitmap); 
 | 
                                if (loadImageResult != null) { 
 | 
                                    loadImageResult.onResult(bitmap); 
 | 
                                } 
 | 
                            }else { 
 | 
                                if (loadImageResult != null) { 
 | 
                                    loadImageResult.onResult(null); 
 | 
                                } 
 | 
                            } 
 | 
                        } else if (closeableImage instanceof CloseableBitmap) { 
 | 
                            CloseableBitmap closeableBitmap = (CloseableBitmap) closeableImage; 
 | 
                            Bitmap bitmap = closeableBitmap.getUnderlyingBitmap(); 
 | 
                            if (bitmap != null && !bitmap.isRecycled()) { 
 | 
                                // https://github.com/facebook/fresco/issues/648 
 | 
                                final Bitmap tempBitmap = bitmap.copy(bitmap.getConfig(), false); 
 | 
                                if (loadImageResult != null) { 
 | 
                                    loadImageResult.onResult(tempBitmap); 
 | 
                                } 
 | 
                            }else { 
 | 
                                if (loadImageResult != null) { 
 | 
                                    loadImageResult.onResult(null); 
 | 
                                } 
 | 
                            } 
 | 
                        }else { 
 | 
                            if (loadImageResult != null) { 
 | 
                                loadImageResult.onResult(null); 
 | 
                            } 
 | 
                        } 
 | 
                    } finally { 
 | 
                        imageReference.close(); 
 | 
                        closeableReference.close(); 
 | 
                    } 
 | 
                }else { 
 | 
                    if (loadImageResult != null) { 
 | 
                        loadImageResult.onResult(null); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onFailureImpl(DataSource dataSource) { 
 | 
                Throwable throwable = dataSource.getFailureCause(); 
 | 
                if (throwable != null) { 
 | 
                    Timber.tag("ImageLoader").e("onFailureImpl = " + throwable.toString()); 
 | 
                } 
 | 
                if (loadImageResult != null) { 
 | 
                    loadImageResult.onResult(null); 
 | 
                } 
 | 
            } 
 | 
        }; 
 | 
        dataSource.subscribe(dataSubscriber, UiThreadImmediateExecutorService.getInstance()); 
 | 
    } 
 | 
  
 | 
  
 | 
    public static void loadImageBlur(final SimpleDraweeView draweeView, String url) { 
 | 
        ImageLoader.loadImage(draweeView, url.trim(), new BasePostprocessor() { 
 | 
            @Override 
 | 
            public String getName() { 
 | 
                return "blurPostprocessor"; 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void process(Bitmap bitmap) { 
 | 
                BitmapBlurHelper.blur(bitmap, 25); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void loadImageBlur(final SimpleDraweeView draweeView, int resId) { 
 | 
        ImageLoader.loadDrawable(draweeView, resId, new BasePostprocessor() { 
 | 
            @Override 
 | 
            public String getName() { 
 | 
                return "blurPostprocessor"; 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void process(Bitmap bitmap) { 
 | 
                BitmapBlurHelper.blur(bitmap, 20); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    /*public static void loadImage(Context context, String url, ImageSize size, final ImageLoadingListener listener) { 
 | 
        if (listener == null) { 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        if (TextUtils.isEmpty(url.trim())) { 
 | 
            listener.onFailure(); 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        ImageRequestBuilder builder = ImageRequestBuilder 
 | 
                .newBuilderWithSource(Uri.parse(url.trim())) 
 | 
                .setProgressiveRenderingEnabled(false); 
 | 
        if (size != null) { 
 | 
            builder.setResizeOptions(new ResizeOptions(size.getWidth(), size.getHeight())); 
 | 
        } 
 | 
  
 | 
        ImageRequest imageRequest = builder.build(); 
 | 
        ImagePipeline imagePipeline = Fresco.getImagePipeline(); 
 | 
        final DataSource<CloseableReference<CloseableImage>> 
 | 
                dataSource = imagePipeline.fetchDecodedImage(imageRequest, context); 
 | 
  
 | 
        final DataSubscriber<CloseableReference<CloseableImage>> dataSubscriber = new 
 | 
                BaseDataSubscriber<CloseableReference<CloseableImage>>() { 
 | 
                    @Override 
 | 
                    public void onNewResultImpl( 
 | 
                            DataSource<CloseableReference<CloseableImage>> dataSource) { 
 | 
                        if (!dataSource.isFinished()) { 
 | 
                            return; 
 | 
                        } 
 | 
                        CloseableReference<CloseableImage> closeableReference = dataSource 
 | 
                                .getResult(); 
 | 
                        if (closeableReference == null) { 
 | 
                            return; 
 | 
                        } 
 | 
                        try { 
 | 
                            Bitmap bitmap = null; 
 | 
                            if (closeableReference.get() instanceof CloseableBitmap) { 
 | 
                                CloseableBitmap closeableBitmap = (CloseableBitmap) 
 | 
                                        closeableReference.get(); 
 | 
                                bitmap = closeableBitmap.getUnderlyingBitmap(); 
 | 
                            } 
 | 
  
 | 
                            //Bitmap bitmap = closeableBitmap.getUnderlyingBitmap(); 
 | 
                            if (bitmap != null && !bitmap.isRecycled()) { 
 | 
                                //Bitmap copybitmap = 
 | 
                                SoftReference<Bitmap> copyBitmap = new SoftReference<Bitmap>(Bitmap.createBitmap(bitmap)); 
 | 
                                //  Bitmap copybitmap = ImageBlur.createRGBABitmap(bitmap, bitmap.getWidth(), bitmap.getHeight(),1); 
 | 
                                listener.onSuccess(copyBitmap.get()); 
 | 
                            } 
 | 
                        } finally { 
 | 
                            closeableReference.close(); 
 | 
                            dataSource.close(); 
 | 
                        } 
 | 
                    } 
 | 
  
 | 
                    @Override 
 | 
                    public void onFailureImpl(DataSource dataSource) { 
 | 
                        listener.onFailure(); 
 | 
                        dataSource.close(); 
 | 
                    } 
 | 
                }; 
 | 
        dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance()); 
 | 
    }*/ 
 | 
  
 | 
    /*//(做处理压缩重新设置宽高)模糊化需要 
 | 
    public static void getImageThumbnail(Context context, String uri, ImageSize size, final ImageLoadingListener listener) { 
 | 
        if (listener == null) { 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        if(uri!=null){ 
 | 
            uri.trim(); 
 | 
        } 
 | 
  
 | 
        if (TextUtils.isEmpty(uri)) { 
 | 
            listener.onFailure(); 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        ImageRequestBuilder builder = ImageRequestBuilder 
 | 
                .newBuilderWithSource(Uri.parse(uri)) 
 | 
                .setProgressiveRenderingEnabled(false); 
 | 
        if (size != null) { 
 | 
            builder.setResizeOptions(new ResizeOptions(size.getWidth(), size.getHeight())); 
 | 
        } 
 | 
  
 | 
        ImageRequest imageRequest = builder.build(); 
 | 
        ImagePipeline imagePipeline = Fresco.getImagePipeline(); 
 | 
        final DataSource<CloseableReference<CloseableImage>> 
 | 
                dataSource = imagePipeline.fetchDecodedImage(imageRequest, context); 
 | 
  
 | 
        dataSource.subscribe(new BaseDataSubscriber<CloseableReference<CloseableImage>>() { 
 | 
                                 @Override 
 | 
                                 public void onNewResultImpl( 
 | 
                                         DataSource<CloseableReference<CloseableImage>> dataSource) { 
 | 
                                     if (!dataSource.isFinished()) { 
 | 
                                         return; 
 | 
                                     } 
 | 
                                     CloseableReference<CloseableImage> closeableReference = dataSource 
 | 
                                             .getResult(); 
 | 
                                     if (closeableReference != null) { 
 | 
                                         try { 
 | 
                                             Bitmap bitmap = null; 
 | 
                                             if (closeableReference.get() instanceof CloseableBitmap) { 
 | 
                                                 CloseableBitmap closeableBitmap = (CloseableBitmap) 
 | 
                                                         closeableReference.get(); 
 | 
                                                 bitmap = closeableBitmap.getUnderlyingBitmap(); 
 | 
                                             } 
 | 
                                             //Bitmap bitmap = closeableBitmap.getUnderlyingBitmap(); 
 | 
                                             if (bitmap != null && !bitmap.isRecycled()) { 
 | 
                                                 // Bitmap thumbbitmap = ThumbnailUtils.extractThumbnail(bitmap, 100, 100); 
 | 
                                                 SoftReference<Bitmap> copyBitmap = new SoftReference<Bitmap>(Bitmap.createBitmap(bitmap,0,0,100, 100)); 
 | 
                                                 listener.onSuccess(copyBitmap.get()); 
 | 
                                             } 
 | 
                                         } finally { 
 | 
                                             closeableReference.close(); 
 | 
                                             dataSource.close(); 
 | 
                                         } 
 | 
                                     } 
 | 
                                 } 
 | 
  
 | 
                                 @Override 
 | 
                                 public void onFailureImpl(DataSource dataSource) { 
 | 
                                     listener.onFailure(); 
 | 
                                     dataSource.close(); 
 | 
                                 } 
 | 
                             }, 
 | 
                CallerThreadExecutor.getInstance()); 
 | 
    }*/ 
 | 
  
 | 
    public static DraweeController getDraweeController(DraweeView targetView, String filepath) { 
 | 
        Uri uri= Uri.parse(filepath); 
 | 
        int w=targetView.getWidth(); 
 | 
        int h=targetView.getHeight(); 
 | 
        ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) 
 | 
                //根据View的尺寸放缩图片 
 | 
                .setResizeOptions(new ResizeOptions(targetView.getWidth(), targetView.getHeight())) 
 | 
                .build(); 
 | 
  
 | 
        DraweeController controller = Fresco.newDraweeControllerBuilder() 
 | 
                .setOldController(targetView.getController()) 
 | 
                .setImageRequest(request) 
 | 
                .setCallerContext(uri) 
 | 
                .build(); 
 | 
        return controller; 
 | 
    } 
 | 
} 
 |