package com.example.someutil.util;
import android.net.Uri;
import android.os.Environment;
import com.example.someutil.App;
import com.facebook.cache.disk.DiskCacheConfig;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.generic.RoundingParams;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.request.ImageRequestBuilder;
import java.io.File;
public class FrescoUtil {
//基础加载图片
public static void setImage(String url, SimpleDraweeView simpleDraweeView){
Uri uri = Uri.parse(url);
simpleDraweeView.setImageURI(uri);
}
//渐进式加载图片
public static void setGradualImage(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);
}
//不可控圆角图(四个角度一样度数)
public static void setRadiusImage(String url,SimpleDraweeView simpleDraweeView,float radius,int color,float width){
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if(width>0f){
roundingParams.setBorder(color,width);
}
roundingParams.setCornersRadius(radius);
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
//可控四个圆角
public static void setCornerImage(String url,SimpleDraweeView simpleDraweeView,float topLeft, float topRight, float bottomRight, float bottomLeft,int color,float width){
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if(width>0f){
roundingParams.setBorder(color, width);
}
roundingParams.setCornersRadii(topLeft,topRight,bottomLeft,bottomRight);
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
//圆形图
public static void setCircleImage(String url,SimpleDraweeView simpleDraweeView,int color,float width){
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if(width>0f){
roundingParams.setBorder(color, width);
}
roundingParams.setRoundAsCircle(true);
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
//gif动图
public static void setGifImage(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);
}
}