Fresco封装工具类

public class FrescoUtils {

    /**
     * 加载基本图片
     *
     * @param url
     * @param simpleDraweeView
     */
    public static void showBasicPic(String url, SimpleDraweeView simpleDraweeView) {
        Uri uri = Uri.parse(url);
        simpleDraweeView.setImageURI(uri);
    }

    /**
     * 加载渐进式图片
     *
     * @param url
     * @param simpleDraweeView
     */
    public static void showProgressivePic(String url, SimpleDraweeView simpleDraweeView) {
        Uri uri = Uri.parse(url);
        ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
                .setProgressiveRenderingEnabled(true)
                .build();
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setImageRequest(request)
                .setOldController(simpleDraweeView.getController())
                .build();
        simpleDraweeView.setController(controller);
    }

    /**
     * 加载圆角图片
     *
     * @param url
     * @param simpleDraweeView
     * @param radius
     * @param width
     * @param color
     */
    public static void showfilletPic(String url, SimpleDraweeView simpleDraweeView, float radius, float width, int color) {
        Uri uri = Uri.parse(url);
        RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
        if (width > 0) {
            roundingParams.setBorder(color, width);//描边线
        }
        roundingParams.setCornersRadius(radius);//总体圆角
        simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
        simpleDraweeView.setImageURI(uri);
    }

    /**
     *  圆角图片
     * @param url
     * @param simpleDraweeView
     * @param topLeft
     * @param topRight
     * @param bottmLeft
     * @param bottomRight
     * @param width
     * @param color
     */
    public static void showYuanJiaoPic(String url, SimpleDraweeView simpleDraweeView, float topLeft, float topRight, float bottmLeft, float bottomRight, float width, int color) {
        Uri uri = Uri.parse(url);
        RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
        if (width > 0) {
            roundingParams.setBorder(color, width);//描边线
        }
        roundingParams.setCornersRadii(topLeft, topRight, bottmLeft, bottomRight);
        simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
        simpleDraweeView.setImageURI(uri);
    }

    /**
     * 加载圆形图片
     *
     * @param url
     * @param simpleDraweeView
     * @param width
     * @param color
     */
    public static void showCirclePic(String url, SimpleDraweeView simpleDraweeView, float width, int color) {
        if (url == null) {
            simpleDraweeView.setImageURI(url);
            return;
        }
        Uri uri = Uri.parse(url);
        RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
        if (width > 0) {
            roundingParams.setBorder(color, width);
        }
        roundingParams.setRoundAsCircle(true);
        simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
        simpleDraweeView.setImageURI(uri);
    }

    /**
     * 加载gif动图
     *
     * @param url
     * @param simpleDraweeView
     */
    public static void showGIFPic(String url, SimpleDraweeView simpleDraweeView) {
        Uri uri = Uri.parse(url);
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .setAutoPlayAnimations(true)
                .setOldController(simpleDraweeView.getController())
                .build();
        simpleDraweeView.setController(controller);
    }

    /**
     * 高斯模糊图片
     *
     * @param url
     * @param simpleDraweeView
     * @param iterations
     * @param blurRadius
     */
    public static void showUrlBlur(String url, SimpleDraweeView simpleDraweeView, int iterations, int blurRadius) {
        Uri uri = Uri.parse(url);
        ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
                .setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
                .build();
        AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
                .setOldController(simpleDraweeView.getController())
                .setImageRequest(request)
                .build();
        simpleDraweeView.setController(controller);
    }
}

App一定要在AndroidManifest.xml中注册!!!

 public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Fresco无缓存
        //Fresco.initialize(this);

        //Fresco缓存
        Fresco.initialize(this,ImagePipelineConfig.newBuilder(App.this)
                .setMainDiskCacheConfig(
                        DiskCacheConfig.newBuilder(this)
                                .setBaseDirectoryName("CacgPic")
                                .setBaseDirectoryPath(Environment.getExternalStoragePublicDirectory("photo"))
                                .build()
                )
                .build());
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容