Fresol工具类封装

public class FresoiUrl {

    public static Context mContext;

    public static void inisliza(Context context) {
        mContext =context;
        //自定义缓存路径
        DiskCacheConfig.Builder builder = DiskCacheConfig.newBuilder(context);
        builder.setBaseDirectoryPath(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/images"));
        DiskCacheConfig diskCacheConfig = builder.build();
        //配置Config
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context).setDownsampleEnabled(true)
                .setMainDiskCacheConfig(diskCacheConfig)
                .build();
        //注册Fresco
        Fresco.initialize(context, config);
    }


    //以高斯模糊显示。
    public static void showUrlBlur(SimpleDraweeView draweeView, String url, int iterations, int blurRadius) {
        try {
            //加载uri
            Uri uri = Uri.parse(url);
            //ImageRequestBuilder   图片的复用  多图的请求
            ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
                    //设置后处理器
                    .setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
                    .build();
    
            AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
                    .setOldController(draweeView.getController())
                    .setImageRequest(request)
                    .build();
            draweeView.setController(controller);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    // 基础加载图片
    public static void setTu(String url,SimpleDraweeView simpleDraweeView){
        Uri uri = Uri.parse(url);
        simpleDraweeView.setImageURI(uri);
    }

    //渐进式加载图片
    public static void setJianJin(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);
    }
    /**
     * 圆角图片
     * url 图片路径
     * simpleDraweeView 控件
     * radius 角度
     * color 描边线颜色
     * width  描边线宽度
     */
    public static void setYuanJiao(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);
    }

    /**
     *  圆角图片
     *  可控四角角度
     *  url 图片路径
     *  simpleDraweeView 控件
     *  topLeft 左上角
     *  topRight 右上角
     *  bottomRight 右下角
     *  bottomLeft 左下角
     *  color 描边线颜色
     *  width 描边线宽度
     */
    public static void setYuanJiao(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,bottomRight,bottomLeft);//各角不同圆角
        simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
        simpleDraweeView.setImageURI(uri);
    }

    //圆形图片
    public static void setYuanQuan(String url,SimpleDraweeView simpleDraweeView,int color,float width){
        if(url==null){
            simpleDraweeView.setImageURI(url);
            return;
        }
        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 setDongTu(String url,SimpleDraweeView simpleDraweeView){
        Uri uri = Uri.parse(url);
        DraweeController controller1 = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .setAutoPlayAnimations(true)//设置为true将循环播放Gif动画
                .setOldController(simpleDraweeView.getController())
                .build();
        simpleDraweeView.setController(controller1);
    }
public class MainActivity extends AppCompatActivity {

    private SimpleDraweeView mDraweeView;
    public static String mGifUrl = "http://img.zcool.cn/community/0139505792e5fc0000018c1bbb7271.gif" ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        mDraweeView = findViewById(R.id.img);
        //加载网络图片的网址
       /* Uri uri = Uri.parse("http://img3.imgtn.bdimg.com/it/u=3594232439,2220325256&fm=26&gp=0.jpg");
        //加载图片
        mDraweeView.setImageURI(uri);*/
      FresoiUrl.setJianJin(mGifUrl,mDraweeView);
      //  FresoiUrl.setDongTu(mGifUrl,mDraweeView);

    }
public class App extends Application {
   // private static App app;

    @Override
    public void onCreate() {
        super.onCreate();

        FresoiUrl.inisliza(this);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值