Android 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);
    
 *
 * @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);
 }
}	 

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

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

    //缓存路径
    Fresco.initialize(this,ImagePipelineConfig.newBuilder(App.this)
            .setMainDiskCacheConfig(
                    DiskCacheConfig.newBuilder(this)
                            .setBaseDirectoryName("CacgPic")
                            .setBaseDirectoryPath(Environment.getExternalStoragePublicDirectory("photo"))
                            .build()
            )
            .build());
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值