瀏覽代碼

1. 替换glide 为 coil

咸光金 4 年之前
父節點
當前提交
cb7d0cef35

+ 3 - 5
base/src/main/java/com/ysnows/base/binding/ImageBindingAdapter.kt

@@ -3,6 +3,7 @@ package com.ysnows.base.binding
 import android.graphics.drawable.Drawable
 import android.widget.ImageView
 import androidx.databinding.BindingAdapter
+import coil.load
 import com.bumptech.glide.Glide
 import com.ysnows.base.utils.glide.GlideUtils
 
@@ -12,14 +13,11 @@ object ImageBindingAdapter {
     @JvmStatic
     fun setUrlWithDrawable(view: ImageView, url: String?, drawable: Drawable?) {
         if (!url.isNullOrEmpty()) {
-            GlideUtils.lImg(view.context, url, view)
+            view.load(url)
         }
 
         if (drawable != null) {
-            Glide.with(view.context)
-                    .load(drawable)
-                    .apply(GlideUtils.myOption)
-                    .into(view)
+            view.load(drawable)
         }
 
 

+ 2 - 1
base/src/main/java/com/ysnows/base/ext/BaseViewHolderExt.kt

@@ -2,13 +2,14 @@ package com.ysnows.base.ext
 
 import android.widget.ImageView
 import androidx.annotation.IdRes
+import coil.load
 import com.chad.library.adapter.base.viewholder.BaseViewHolder
 import com.ysnows.base.utils.glide.GlideUtils
 
 
 fun BaseViewHolder.setImageUrl(@IdRes viewId: Int, url: String?): BaseViewHolder {
     val imageView = getView<ImageView>(viewId)
-    GlideUtils.lImg(itemView.context, url, imageView)
+    imageView.load(url)
     return this
 
 }

+ 0 - 59
base/src/main/java/com/ysnows/base/utils/glide/GlideCircleTransform.java

@@ -1,59 +0,0 @@
-package com.ysnows.base.utils.glide;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-
-import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
-import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
-
-import java.security.MessageDigest;
-
-/**
- * Created by Weidongjian on 2015/7/29.
- */
-public class GlideCircleTransform extends BitmapTransformation {
-    public GlideCircleTransform(Context context) {
-        super();
-    }
-
-    @Override
-    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
-        return circleCrop(pool, toTransform);
-    }
-
-    private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
-        if (source == null) return null;
-
-        int size = Math.min(source.getWidth(), source.getHeight());
-        int x = (source.getWidth() - size) / 2;
-        int y = (source.getHeight() - size) / 2;
-
-        // TODO this could be acquired from the pool too
-        Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
-
-        Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
-        if (result == null) {
-            result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
-        }
-
-        Canvas canvas = new Canvas(result);
-        Paint paint = new Paint();
-        paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
-        paint.setAntiAlias(true);
-        float r = size / 2f;
-        canvas.drawCircle(r, r, r, paint);
-        return result;
-    }
-
-   /* @Override public String getId() {
-        return getClass().getName();
-    }*/
-
-    @Override
-    public void updateDiskCacheKey(MessageDigest messageDigest) {
-
-    }
-}

+ 0 - 62
base/src/main/java/com/ysnows/base/utils/glide/GlideRoundTransform.java

@@ -1,62 +0,0 @@
-package com.ysnows.base.utils.glide;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.RectF;
-
-import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
-import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
-
-import java.security.MessageDigest;
-
-/**
- * Created by Weidongjian on 2015/7/29.
- */
-public class GlideRoundTransform extends BitmapTransformation {
-
-    private static float radius = 0f;
-
-    public GlideRoundTransform(Context context) {
-        this(context, 4);
-    }
-
-    public GlideRoundTransform(Context context, int dp) {
-        super();
-        this.radius = Resources.getSystem().getDisplayMetrics().density * dp;
-    }
-
-    @Override
-    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
-        return roundCrop(pool, toTransform);
-    }
-
-    private static Bitmap roundCrop(BitmapPool pool, Bitmap source) {
-        if (source == null) return null;
-
-        Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
-        if (result == null) {
-            result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
-        }
-
-        Canvas canvas = new Canvas(result);
-        Paint paint = new Paint();
-        paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
-        paint.setAntiAlias(true);
-        RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
-        canvas.drawRoundRect(rectF, radius, radius, paint);
-        return result;
-    }
-
-   /* @Override public String getId() {
-        return getClass().getName() + Math.round(radius);
-    }*/
-
-    @Override
-    public void updateDiskCacheKey(MessageDigest messageDigest) {
-
-    }
-}

+ 0 - 63
base/src/main/java/com/ysnows/base/utils/glide/GlideTransform.java

@@ -1,63 +0,0 @@
-package com.ysnows.base.utils.glide;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.RectF;
-
-import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
-import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
-import com.bumptech.glide.load.resource.bitmap.TransformationUtils;
-
-import java.security.MessageDigest;
-
-public class GlideTransform extends BitmapTransformation {
-
-    private static float radius = 0f;
-
-    public GlideTransform(Context context) {
-        this(context, 4);
-    }
-
-    public GlideTransform(Context context, int dp) {
-        super();
-        this.radius = Resources.getSystem().getDisplayMetrics().density * dp;
-    }
-
-    @Override
-    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
-        Bitmap bitmap = TransformationUtils.centerCrop(pool, toTransform, outWidth, outHeight);
-        return roundCrop(pool, bitmap);
-    }
-
-    private static Bitmap roundCrop(BitmapPool pool, Bitmap source) {
-        if (source == null) return null;
-
-        Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
-        if (result == null) {
-            result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
-        }
-
-        Canvas canvas = new Canvas(result);
-        Paint paint = new Paint();
-        paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
-        paint.setAntiAlias(true);
-        RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
-        canvas.drawRoundRect(rectF, radius, radius, paint);
-
-        return result;
-    }
-
-    public String getId() {
-        return getClass().getName() + Math.round(radius);
-    }
-
-    @Override
-    public void updateDiskCacheKey(MessageDigest messageDigest) {
-
-    }
-
-}

+ 0 - 224
base/src/main/java/com/ysnows/base/utils/glide/GlideUtils.java

@@ -1,224 +0,0 @@
-/*
- * Copyright (ConfigColor) 2016 CaMnter yuanyu.camnter@gmail.com
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.ysnows.base.utils.glide;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.widget.ImageView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.Priority;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
-import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
-import com.bumptech.glide.request.RequestOptions;
-import com.ysnows.base.R;
-import com.ysnows.base.utils.UiUtils;
-
-/**
- * Description:GlideUtils
- * Created by:CaMnter
- * Time:2016-01-04 22:19
- */
-public class GlideUtils {
-
-
-    private static final String TAG = "GlideUtils";
-
-
-    public static RequestOptions picOptionsto = new RequestOptions()
-
-            .diskCacheStrategy(DiskCacheStrategy.ALL);
-
-
-    public static RequestOptions getoptions(Context context) {
-        RequestOptions options = new RequestOptions()
-                .centerCrop()
-                .transform(new GlideCircleTransform(context))
-                .skipMemoryCache(true)
-                .dontAnimate()
-                .circleCrop()
-                .override(100, 100)
-                .diskCacheStrategy(DiskCacheStrategy.ALL);
-        return options;
-    }
-
-
-    public static void lImg(Context context, String url, ImageView imageView, boolean isCircle, boolean hasPlaceHolder) {
-
-        if (!TextUtils.isEmpty(url)) {
-            if (context != null) {
-
-                Glide.with(context)
-                        .load(url)
-                        //这个是设置渐显的效果
-                        .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
-                        .apply(getoptions(context))
-                        .into(imageView);
-
-            }
-        }
-    }
-
-
-    //是否是圆,不是圆,大小没有限定
-    public static void lImg(Context context, String url, ImageView imageView, boolean isCircle) {
-
-        if (!TextUtils.isEmpty(url)) {
-            if (context != null) {
-                RequestOptions CirmyOptions;
-
-                if (isCircle) {//圆形图片
-                    CirmyOptions = new RequestOptions()
-                            .centerCrop()
-                            .circleCrop()
-                            .skipMemoryCache(true)
-                            .placeholder(R.drawable.ic_default_avatar)
-                            .diskCacheStrategy(DiskCacheStrategy.ALL)
-                            .skipMemoryCache(true);
-                } else {
-                    CirmyOptions = new RequestOptions()
-                            .diskCacheStrategy(DiskCacheStrategy.ALL)
-                            .skipMemoryCache(true)
-                            .placeholder(R.drawable.bg_need_error)
-                            .centerCrop()
-                            .error(R.drawable.bg_need_error)
-                            .skipMemoryCache(true);
-
-                }
-
-                Glide.with(context)
-                        .load(getRealImg(url))
-                        //这个是设置渐显的效果
-                        .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
-                        .apply(CirmyOptions)
-                        .into(imageView);
-
-            }
-        }
-    }
-
-    public static String getRealImg(String url) {
-        //&& !url.contains(".gif")
-        if (!url.contains("http") && !url.contains("https")) {
-            return url;
-        } else if (url.contains("x-oss-process=image")) {
-            return url + "/format,webp/quality,Q_75";
-        } else {
-            return url + "?x-oss-process=image/format,webp/quality,Q_75";
-        }
-    }
-
-
-    public static RequestOptions baseOptions() {
-
-        return new RequestOptions()
-                .skipMemoryCache(true)
-                .error(R.drawable.bg_need_error)
-                .placeholder(R.drawable.bg_need_error)
-                .diskCacheStrategy(DiskCacheStrategy.ALL);
-
-    }
-
-    public static RequestOptions baseOptionsNormal() {
-
-        return new RequestOptions()
-                .skipMemoryCache(true)
-                .error(R.drawable.bg_need_error)
-                .placeholder(R.drawable.bg_need_error)
-                .diskCacheStrategy(DiskCacheStrategy.ALL);
-
-    }
-
-
-    public static RequestOptions myOption = new RequestOptions()
-            .centerInside()
-            .diskCacheStrategy(DiskCacheStrategy.ALL);
-
-    //不是圆,没有限定大小
-    public static void lImg(Context context, String url, ImageView imageVie) {
-        Glide.with(context)
-                .load(url)
-                .apply(myOption)
-                .into(imageVie);
-    }
-
-    private static RequestOptions myOptionto = new RequestOptions()
-            .centerCrop()
-            .diskCacheStrategy(DiskCacheStrategy.ALL)
-            .error(R.drawable.bg_need_error)
-            .skipMemoryCache(true);
-
-    //不是圆,没有限定大小
-    public static void lImgTo(Context context, String url, ImageView imageVie) {
-        Glide.with(context)
-                .load(url)
-                .apply(myOptionto)
-                .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
-                .into(imageVie);
-    }
-
-
-    public static RequestOptions fixedOptions = new RequestOptions()
-            .override(200, 200)
-            .placeholder(R.drawable.bg_need_error)
-            .error(R.drawable.bg_need_error)
-            .diskCacheStrategy(DiskCacheStrategy.ALL);
-
-
-    public static void fixedLimgN(Context context, String url, ImageView imageView) {
-        Glide.with(context)
-                .load(url)
-                .apply(fixedOptions)
-                .into(imageView);
-    }
-
-
-    public static RequestOptions myOptionAdapter4 = new RequestOptions()
-            .diskCacheStrategy(DiskCacheStrategy.ALL)
-            .skipMemoryCache(true)
-            .priority(Priority.HIGH)
-            .error(R.drawable.bg_need_error);
-
-
-    //给定角度 大小没有限制
-    public static void lImgRound(Context context, String url, ImageView imageView, int radius) {
-        if (!TextUtils.isEmpty(url)) {
-            if (context != null) {
-
-                //设置图片圆角角度
-                RoundedCorners roundedCorners = new RoundedCorners(UiUtils.dp2px(context, radius));
-
-                RequestOptions myOptions = new RequestOptions()
-                        .centerCrop()
-                        .bitmapTransform(roundedCorners)
-                        .placeholder(R.drawable.bg_need_error)
-                        .diskCacheStrategy(DiskCacheStrategy.ALL)
-                        .error(R.drawable.bg_need_error);
-
-
-                Glide.with(context)
-                        .load(url)
-                        .apply(myOptions)
-                        .into(imageView);
-
-            }
-        }
-    }
-
-
-}

+ 1 - 2
common-build.gradle

@@ -25,7 +25,6 @@ dependencies {
     implementation 'com.github.zhaokaiqiang.klog:library:1.6.0'
 
 
-    implementation 'com.github.bumptech.glide:glide:4.9.0'
     implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
     implementation 'com.zhy:okhttputils:2.6.2'
 
@@ -63,7 +62,7 @@ dependencies {
 
     implementation 'com.yanzhenjie:permission:2.0.3'
 
-
+    implementation("io.coil-kt:coil:0.13.0")
 
 
     //普通版本