Parcourir la source

1.Glide替换图片加载库coil

shihuiyun il y a 2 ans
Parent
commit
23cd713e25

+ 3 - 0
app/build.gradle

@@ -151,4 +151,7 @@ dependencies {
     implementation 'cn.yipianfengye.android:zxing-library:2.2'
     implementation 'androidx.multidex:multidex:2.0.0'
 
+    implementation 'com.github.bumptech.glide:glide:4.13.2'
+    annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
+
 }

+ 14 - 18
app/src/main/java/com/zswc/creativity/activity/CollectDetailsActivity.kt

@@ -20,6 +20,7 @@ import com.zswc.creativity.R
 import com.zswc.creativity.base.MBActivity
 import com.zswc.creativity.databinding.ActivityCollectDetailsBinding
 import com.zswc.creativity.utils.ColorUtils
+import com.zswc.creativity.utils.glide.GlideUtils
 import com.zswc.creativity.view.MyScrollView
 import com.zswc.creativity.vmodel.CollectDetailsVModel
 import java.text.DecimalFormat
@@ -54,39 +55,34 @@ class CollectDetailsActivity : MBActivity<CollectDetailsVModel, ActivityCollectD
             //设置详情图片
             binding.tvShowTitle.text=it.name
 
-            binding.imgDeatils.load(it.pro_info.describe){
-                transformations(RoundedCornersTransformation(16f))
-            }
 
+            //设置详情图片
+
+            GlideUtils.lImg(this,it.pro_info.describe, 16, binding.imgDeatils)
+
+            //设置头 图片
 
             if (!TextUtils.isEmpty(it.pro_info.detail_img)) {
-                //获取文件后缀
                 var ss = it.pro_info.detail_img.substring(it.pro_info.detail_img.length - 3, it.pro_info.detail_img.length);
 
                 if (ss == "gif" || ss == "GIF") {
+                    GlideUtils.lImg(this, it.pro_info.detail_img, binding.imageGifView)
                     binding.imageView.visibility = View.GONE
-                    //设置图片加载gif
-                    val imageLoader = ImageLoader.Builder(context = this)
-                            .crossfade(true)
-                            .availableMemoryPercentage(0.25)
-                            .allowRgb565(true)
-                            .componentRegistry {
-                                if (SDK_INT > 28) {
-                                    add(ImageDecoderDecoder())
-                                } else {
-                                    add(GifDecoder())
-                                }
-                            }.build()
-                    disposable = binding.imageGifView.load(it.pro_info.detail_img, imageLoader)
                     binding.imageGifView.visibility = View.VISIBLE
                 } else {
-                    binding.imageView.load(it.pro_info.detail_img)
+                    GlideUtils.lImg(this, it.pro_info.detail_img, binding.imageView)
                     binding.imageView.visibility = View.VISIBLE
                     binding.imageGifView.visibility = View.GONE
+
                 }
+
+
             }
 
 
+
+
+
         }
 
 

+ 0 - 1
app/src/main/java/com/zswc/creativity/activity/MyCollectActivity.kt

@@ -52,7 +52,6 @@ class MyCollectActivity : MBActivity<MyCollectVModel,  ActivityMyCollectBinding>
 
     }
 
-
     override fun vmClass(): Class<MyCollectVModel> {
         return MyCollectVModel::class.java
     }

+ 45 - 27
app/src/main/java/com/zswc/creativity/activity/TibetanDetailsActivity.kt

@@ -31,6 +31,7 @@ import com.zswc.creativity.config.ConfigRx
 import com.zswc.creativity.databinding.ActivityTibetanDetailsBinding
 import com.zswc.creativity.model.bean.PayTypeBen
 import com.zswc.creativity.utils.ColorUtils
+import com.zswc.creativity.utils.glide.GlideUtils
 import com.zswc.creativity.utils.net.NetEngine
 import com.zswc.creativity.view.MyScrollView
 import com.zswc.creativity.vmodel.TibetanDetailsVModel
@@ -45,8 +46,8 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
 
     var sumSecond = 300//5分钟的总的秒数
     var disposable: Disposable? = null
-     var islide = true //是否滑动的时候标题改变
-     var screenHeightPixels = 0
+    var islide = true //是否滑动的时候标题改变
+    var screenHeightPixels = 0
 
 
     override fun init(savedInstanceState: Bundle?) {
@@ -66,39 +67,55 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
 
             //设置详情图片
 
-            binding.imgDeatils.load(it.describe[0]){
-                transformations(RoundedCornersTransformation(16f))
-            }
-
+            GlideUtils.lImg(this, it.describe[0], 16, binding.imgDeatils)
+            //设置头 图片
 
             if (!TextUtils.isEmpty(it.detail_img)) {
-                //获取文件后缀
                 var ss = it.detail_img.substring(it.detail_img.length - 3, it.detail_img.length);
 
                 if (ss == "gif" || ss == "GIF") {
+                    GlideUtils.lImg(this, it.detail_img, binding.imageGifView)
                     binding.imageView.visibility = View.GONE
-                    //设置图片加载gif
-                    val imageLoader = ImageLoader.Builder(context = this)
-                            .crossfade(true)
-                            .availableMemoryPercentage(0.25)
-                            .allowRgb565(true)
-                            .componentRegistry {
-                                if (SDK_INT > 28) {
-                                    add(ImageDecoderDecoder())
-                                } else {
-                                    add(GifDecoder())
-                                }
-                            }.build()
-                    disposable = binding.imageGifView.load(it.detail_img, imageLoader)
                     binding.imageGifView.visibility = View.VISIBLE
                 } else {
-                    binding.imageView.load(it.detail_img)
+                    GlideUtils.lImg(this, it.detail_img, binding.imageView)
                     binding.imageView.visibility = View.VISIBLE
                     binding.imageGifView.visibility = View.GONE
+
                 }
+
+
             }
 
 
+//            if (!TextUtils.isEmpty(it.detail_img)) {
+//                //获取文件后缀
+//                var ss = it.detail_img.substring(it.detail_img.length - 3, it.detail_img.length);
+//
+//                if (ss == "gif" || ss == "GIF") {
+//                    binding.imageView.visibility = View.GONE
+//                    //设置图片加载gif
+//                    val imageLoader = ImageLoader.Builder(context = this)
+//                            .crossfade(true)
+//                            .availableMemoryPercentage(0.25)
+//                            .allowRgb565(true)
+//                            .componentRegistry {
+//                                if (SDK_INT > 28) {
+//                                    add(ImageDecoderDecoder())
+//                                } else {
+//                                    add(GifDecoder())
+//                                }
+//                            }.build()
+//                    disposable = binding.imageGifView.load(it.detail_img, imageLoader)
+//                    binding.imageGifView.visibility = View.VISIBLE
+//                } else {
+//                    binding.imageView.load(it.detail_img)
+//                    binding.imageView.visibility = View.VISIBLE
+//                    binding.imageGifView.visibility = View.GONE
+//                }
+//            }
+//
+
         }
 
 
@@ -119,7 +136,7 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
             binding.tv.layoutParams = params //将设置好的布局参数应用到控件中
             binding.tv.visibility = View.VISIBLE
 
-            binding.tvTwo.layoutParams=params
+            binding.tvTwo.layoutParams = params
             binding.tvTwo.visibility = View.VISIBLE
 
 
@@ -128,7 +145,6 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
     }
 
 
-
     override fun listeners() {
         super.listeners()
 
@@ -142,8 +158,8 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
                 if (islide) {
 
                     if (y == 0) {
-                        binding.llShowTwo.visibility=View.GONE
-                        binding.llShowOne.visibility=View.VISIBLE
+                        binding.llShowTwo.visibility = View.GONE
+                        binding.llShowOne.visibility = View.VISIBLE
 
                     } else if (y - oldY > 0) {
                         if (screenHeightPixels <= 960) {
@@ -214,8 +230,8 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
 
     private fun setBarVisibility(y: Int, height: Int) {
         if (y > 0 && y < height) {
-            binding.llShowOne.visibility=View.GONE
-            binding.llShowTwo.visibility=View.VISIBLE
+            binding.llShowOne.visibility = View.GONE
+            binding.llShowTwo.visibility = View.VISIBLE
 
 
             val df = DecimalFormat("0.00")
@@ -431,9 +447,11 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
             super.onKeyDown(keyCode, event)
         }
     }
+
     override fun transluent(): Boolean {
         return true
     }
+
     override fun onDestroy() {
         super.onDestroy()
         if (null != disposable) {

+ 7 - 5
app/src/main/java/com/zswc/creativity/adapter/CollectAdapter.kt

@@ -15,6 +15,7 @@ import com.zswc.creativity.activity.CollectDetailsActivity
 import com.zswc.creativity.activity.MyCollectActivity
 import com.zswc.creativity.databinding.ItemMyBoxBinding
 import com.zswc.creativity.model.MyCollection
+import com.zswc.creativity.utils.glide.GlideUtils
 
 class CollectAdapter(context:Context) : BAdapter<MyCollection,
         BaseDataBindingHolder<ItemMyBoxBinding>>(R.layout.item_my_box) {
@@ -24,11 +25,12 @@ class CollectAdapter(context:Context) : BAdapter<MyCollection,
     override fun convert(holder: BaseDataBindingHolder<ItemMyBoxBinding>, item: MyCollection) {
         holder.dataBinding?.item = item
 
-        holder.dataBinding?.imgBg?.load(item.cover){
-            transformations(RoundedCornersTransformation(20f))
-            placeholder(R.drawable.bg_need_error)
-            error(R.drawable.bg_need_error)
-        }
+        GlideUtils.lImg(context,item.cover,12,holder.dataBinding?.imgBg!!)
+//        holder.dataBinding?.imgBg?.load(item.cover){
+//            transformations(RoundedCornersTransformation(20f))
+//            placeholder(R.drawable.bg_need_error)
+//            error(R.drawable.bg_need_error)
+//        }
         holder.dataBinding?.ll?.onClick {
 
             var num=item.num.toInt()

+ 3 - 28
app/src/main/java/com/zswc/creativity/adapter/MyCollectAdapter.kt

@@ -1,32 +1,11 @@
 package com.zswc.creativity.adapter
 
-import android.graphics.Color
-import android.graphics.Typeface
-import android.os.Bundle
-import android.text.Spannable
-import android.text.SpannableStringBuilder
-import android.text.Spanned
-import android.text.TextUtils
-import android.text.style.AbsoluteSizeSpan
-import android.text.style.ForegroundColorSpan
-import android.text.style.StyleSpan
-import android.view.View
-import coil.load
-import coil.transform.RoundedCornersTransformation
 import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
-import com.google.gson.Gson
-import com.qmuiteam.qmui.kotlin.onClick
 import com.zswc.creativity.R
-import com.zswc.creativity.activity.ArticleDetailActivity
-import com.zswc.creativity.databinding.ItemMsgBinding
-import com.zswc.creativity.model.MsgList
-import com.zswc.creativity.utils.VerifyUtils
-import com.zswc.creativity.vmodel.MsgVModel
 import com.ysnows.base.base.BAdapter
-import com.ysnows.base.utils.UiSwitch
 import com.zswc.creativity.databinding.ItemMyCollectBinding
 import com.zswc.creativity.model.MyCollectionList
-import com.zswc.creativity.vmodel.MyCollectVModel
+import com.zswc.creativity.utils.glide.GlideUtils
 
 class MyCollectAdapter() : BAdapter<MyCollectionList, BaseDataBindingHolder<ItemMyCollectBinding>>(R.layout.item_my_collect) {
 
@@ -35,12 +14,8 @@ class MyCollectAdapter() : BAdapter<MyCollectionList, BaseDataBindingHolder<Item
 
         holder.dataBinding?.item = item
 
-        holder.dataBinding?.imgBg?.load(item.cover){
-            // 圆角
-            transformations(RoundedCornersTransformation(12f))
-            placeholder(R.drawable.bg_need_error)
-            error(R.drawable.bg_need_error)
-        }
+        GlideUtils.lImg(context,item.cover,12, holder.dataBinding?.imgBg!!)
+
 
     }
 }

+ 13 - 9
app/src/main/java/com/zswc/creativity/adapter/RecommedAdapter.kt

@@ -1,13 +1,14 @@
 package com.zswc.creativity.adapter
 
 import android.graphics.Color
-import coil.load
-import coil.transform.RoundedCornersTransformation
+import com.bumptech.glide.Glide
 import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
 import com.ysnows.base.base.BAdapter
 import com.zswc.creativity.R
 import com.zswc.creativity.databinding.ItemRecommedBinding
 import com.zswc.creativity.model.CollectionList
+import com.zswc.creativity.utils.glide.GlideUtils
+import com.zswc.creativity.utils.glide.GlideUtilsTo
 
 
 class RecommedAdapter() : BAdapter<CollectionList,
@@ -18,14 +19,17 @@ class RecommedAdapter() : BAdapter<CollectionList,
     override fun convert(holder: BaseDataBindingHolder<ItemRecommedBinding>, item: CollectionList) {
         holder.dataBinding?.item = item
 
+        GlideUtils.lImg(context, item.cover, holder.dataBinding?.imgBg!!)
 
-        holder.dataBinding?.imgBg?.load(item.cover){
-           // 圆角
-            //size(300,300)
-            transformations(RoundedCornersTransformation(20f))
-            placeholder(R.drawable.bg_need_error)
-            error(R.drawable.bg_need_error)
-        }
+
+
+//        holder.dataBinding?.imgBg?.load(item.cover){
+//           // 圆角
+//            //size(300,300)
+//            transformations(RoundedCornersTransformation(20f))
+//            placeholder(R.drawable.bg_need_error)
+//            error(R.drawable.bg_need_error)
+//        }
 
 //        Thread {
 //            val url = URL(item.cover)

+ 3 - 1
app/src/main/java/com/zswc/creativity/fragment/HomeFirstFragment.kt

@@ -24,6 +24,7 @@ import com.zswc.creativity.model.HomeBanner
 import com.zswc.creativity.vmodel.HomeFirstVModel
 import com.tencent.mmkv.MMKV
 import com.zswc.creativity.config.ConfigRx
+import com.zswc.creativity.utils.glide.GlideUtils
 import java.util.ArrayList
 
 /**
@@ -183,7 +184,8 @@ class HomeFirstFragment : MBFragment<HomeFirstVModel, FragmentHomeFirstBinding>(
         }
         binding.banner.setAdapter(BGABanner.Adapter<CardView, String?> { banner, itemView, model, position -> //图片布局
             val simpleDraweeView = itemView.findViewById<ImageView>(R.id.sdv_item_fresco_content)
-            simpleDraweeView.load(model)
+//            simpleDraweeView.load(model)
+            GlideUtils.lImg(context,model,simpleDraweeView)
 
         })
         binding.banner.setData(R.layout.item_fresco, list, null)

+ 57 - 0
app/src/main/java/com/zswc/creativity/utils/glide/GlideCircleTransform.java

@@ -0,0 +1,57 @@
+package com.zswc.creativity.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;
+
+/**
+ */
+public class GlideCircleTransform extends BitmapTransformation {
+    public GlideCircleTransform(Context context) {
+        //super(context);
+    }
+
+    @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) {
+
+    }
+}

+ 60 - 0
app/src/main/java/com/zswc/creativity/utils/glide/GlideRoundTransform.java

@@ -0,0 +1,60 @@
+package com.zswc.creativity.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;
+
+/**
+ */
+public class GlideRoundTransform extends BitmapTransformation {
+
+    private static float radius = 0f;
+
+    public GlideRoundTransform(Context context) {
+        this(context, 4);
+    }
+
+    public GlideRoundTransform(Context context, int dp) {
+       // super(context);
+        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) {
+
+    }
+}

+ 63 - 0
app/src/main/java/com/zswc/creativity/utils/glide/GlideTransform.java

@@ -0,0 +1,63 @@
+package com.zswc.creativity.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(context);
+        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) {
+
+    }
+
+}

+ 126 - 0
app/src/main/java/com/zswc/creativity/utils/glide/GlideUtils.kt

@@ -0,0 +1,126 @@
+package com.zswc.creativity.utils.glide
+
+import android.content.Context
+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.request.RequestOptions
+import com.zswc.creativity.R
+
+/**
+ *on 2022/7/28
+ */
+object GlideUtils {
+
+
+    fun getOne(context: Context,radius:Int): RequestOptions {
+
+        return RequestOptions.bitmapTransform(GlideCircleTransform(context))
+                .transform(GlideRoundTransform(context, radius))
+                .placeholder(R.drawable.bg_need_error)
+                .error(R.drawable.bg_need_error)
+    }
+
+
+    fun getTwo(): RequestOptions {
+
+        return RequestOptions()
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .placeholder(R.drawable.bg_need_error)
+                .error(R.drawable.bg_need_error)
+                .skipMemoryCache(true)
+    }
+    fun getThree(): RequestOptions{
+
+        return RequestOptions()
+                .centerCrop()
+                .skipMemoryCache(true)
+                .priority(Priority.HIGH)
+                .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
+                .error(R.drawable.bg_need_error)
+
+
+    }
+
+    fun getFour(context: Context?): RequestOptions{
+
+        return RequestOptions()
+                .placeholder(R.drawable.ic_default_avatar)
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .transform(GlideCircleTransform(context))
+                .error(R.drawable.ic_default_avatar)
+    }
+
+    fun getFive(context: Context?,radius:Int,with:Int,high:Int): RequestOptions {
+
+        return RequestOptions()
+                .override(with, high)
+                .transform(GlideRoundTransform(context, radius))
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .placeholder(R.drawable.bg_need_error)
+                .error(R.drawable.bg_need_error)
+                .skipMemoryCache(true)
+    }
+    fun getSix(with:Int,high:Int): RequestOptions {
+
+        return RequestOptions()
+                .override(with, high)
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .placeholder(R.drawable.bg_need_error)
+                .error(R.drawable.bg_need_error)
+                .skipMemoryCache(true)
+    }
+
+
+
+    //可设置圆角
+    fun lImg(context: Context?, url: String, radius:Int,imageView: ImageView?) {
+        if (context != null) {
+            Glide.with(context)
+                    .load(url)
+                    .apply(getOne(context,radius))
+                    .into(imageView!!)
+        }
+    }
+
+    //没有限制图片的大小
+    fun lImg(context: Context?, url: String?, imageVie: ImageView?) {
+        Glide.with(context!!)
+                .load(url)
+                .apply(getTwo())
+                .into(imageVie!!)
+    }
+
+
+    fun lImg(context: Context?, url: String?, with:Int,high:Int,imageVie: ImageView?) {
+        Glide.with(context!!)
+                .load(url)
+                .apply(getSix(with,high))
+                .into(imageVie!!)
+    }
+
+    fun lImg(context: Context?, url: String?, radius:Int,with:Int,high:Int,imageVie: ImageView?) {
+        Glide.with(context!!)
+                .load(url)
+                .apply(getFive(context,radius,with,high))
+                .into(imageVie!!)
+    }
+
+    fun lGif(context: Context?, url: String?, imageVie: ImageView?) {
+        Glide.with(context!!)
+                .load(url)
+                .apply(getThree())
+                .into(imageVie!!)
+    }
+
+    fun lAvator(context: Context?, url: String?, imageVie: ImageView?){
+        Glide.with(context!!)
+                .load(url)
+                .apply(getFour(context))
+                .into(imageVie!!)
+    }
+
+
+}

+ 1054 - 0
app/src/main/java/com/zswc/creativity/utils/glide/GlideUtilsTo.java

@@ -0,0 +1,1054 @@
+/*
+ * Copyright (C) 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.zswc.creativity.utils.glide;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Matrix;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.Priority;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
+import com.bumptech.glide.request.RequestOptions;
+import com.bumptech.glide.request.target.SimpleTarget;
+import com.bumptech.glide.request.target.SizeReadyCallback;
+import com.bumptech.glide.request.target.Target;
+import com.bumptech.glide.request.transition.Transition;
+import com.ysnows.base.utils.UiUtils;
+import com.zswc.creativity.R;
+
+
+/**
+ * Description:GlideUtils
+ */
+public class GlideUtilsTo {
+
+
+    private static final String TAG = "GlideUtils";
+
+    private static RequestOptions myOptions = new RequestOptions()
+            .centerCrop()
+            .diskCacheStrategy(DiskCacheStrategy.NONE)
+            .skipMemoryCache(true)
+            .error(R.drawable.ic_default_avatar);
+
+
+    private static RequestOptions adversOption = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .diskCacheStrategy(DiskCacheStrategy.NONE)
+            .error(R.drawable.bg_need_error);
+
+    private static RequestOptions gifOption = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .priority(Priority.HIGH)
+            .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
+            .error(R.drawable.bg_need_error);
+
+
+    public static RequestOptions myOptionAdapter4 = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .skipMemoryCache(true)
+            .priority(Priority.HIGH)
+            .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
+            .error(R.drawable.bg_need_error);
+
+
+
+    private static RequestOptions gifOptionTo = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .priority(Priority.HIGH)
+            .diskCacheStrategy(DiskCacheStrategy.NONE)
+            .error(R.drawable.bg_need_error);
+
+
+    private static RequestOptions myOption = new RequestOptions()
+            .centerCrop()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .placeholder(R.drawable.bg_need_error)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true);
+
+
+
+    private static RequestOptions myOptionAdapter = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .placeholder(R.drawable.bg_need_error)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true);
+
+
+
+    private static RequestOptions myOptionAdapter3 = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true);
+
+
+    public static RequestOptions adsOptions = new RequestOptions()
+            .centerCrop()
+            .placeholder(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .error(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.NONE);
+
+    public static RequestOptions adsOptionsNo = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .error(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions alsOptions = new RequestOptions()
+            .centerCrop()
+            .placeholder(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .error(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions crsOptions = new RequestOptions()
+            .centerCrop()
+            .placeholder(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .error(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions picOptions = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+    public static RequestOptions picOptionsto = new RequestOptions()
+            .skipMemoryCache(true)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions animOptions = new RequestOptions()
+            .centerCrop()
+            .skipMemoryCache(true)
+            .dontAnimate()
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions CirmyOptions = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .placeholder(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .error(R.drawable.bg_need_error);
+
+
+    public static RequestOptions getoptions(Context context) {
+        RequestOptions options = new RequestOptions()
+                .centerCrop()
+                .transform(new GlideCircleTransform(context))
+                .skipMemoryCache(true)
+                .override(100, 100)
+                .diskCacheStrategy(DiskCacheStrategy.ALL);
+        return options;
+    }
+
+    public static RequestOptions getoptionsto(Context context) {
+        RequestOptions CirmyOptions = new RequestOptions()
+                .centerCrop()
+                .placeholder(R.drawable.ic_default_avatar)
+                .bitmapTransform(new GlideCircleTransform(context))
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .override(100, 100)
+                .error(R.drawable.ic_default_avatar);
+        return CirmyOptions;
+    }
+
+
+    public static RequestOptions fixedOptions = new RequestOptions()
+//            .override(200, 200)
+            .override(Target.SIZE_ORIGINAL)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .placeholder(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+    public static RequestOptions fixedOptionsNoCache = new RequestOptions()
+//            .override(200, 200)
+            .override(Target.SIZE_ORIGINAL)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(false)
+            .placeholder(R.drawable.bg_need_error)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions fixedavator = new RequestOptions()
+            .override(200, 200)
+            .placeholder(R.drawable.ic_default_avatar)
+            .override(Target.SIZE_ORIGINAL)
+            .skipMemoryCache(false)
+            .error(R.drawable.ic_default_avatar)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions getoptionstest(int a, int b) {
+        RequestOptions testOptions = new RequestOptions()
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .centerCrop()
+                .override(a, b)
+                .error(R.drawable.bg_need_error);
+        return testOptions;
+
+    }
+
+    public static RequestOptions myOptionAdapter2 = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+            .placeholder(R.drawable.bg_need_error)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true);
+
+
+
+
+    public static RequestOptions fixedOptionsHome = new RequestOptions()
+            .override(Target.SIZE_ORIGINAL)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+
+    public static RequestOptions re_ControlsChange2 = new RequestOptions()
+            .override(Target.SIZE_ORIGINAL)
+            .error(R.drawable.bg_need_error)
+            .skipMemoryCache(true)
+            .diskCacheStrategy(DiskCacheStrategy.ALL);
+
+
+    public static RequestOptions getoptionstwo(Context context, Drawable error_drawable, boolean isCircle) {
+        RequestOptions myOptions;
+        if (null != error_drawable) {
+            if (isCircle) {//圆形
+                myOptions = new RequestOptions()
+                        .centerCrop()
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .override(50, 50)
+                        .transform(new GlideCircleTransform(context))
+                        .error(error_drawable);
+            } else {
+                myOptions = new RequestOptions()
+                        .centerCrop()
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .override(100, 100)
+                        .error(error_drawable);
+            }
+        } else {
+            if (isCircle) {//圆形
+                myOptions = new RequestOptions()
+                        .centerCrop()
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .placeholder(R.drawable.ic_default_avatar)
+                        .override(100, 100)
+                        .skipMemoryCache(true)
+                        .transform(new GlideCircleTransform(context))
+                        .error(R.drawable.ic_default_avatar);
+            } else {
+                myOptions = new RequestOptions()
+                        .centerCrop()
+                        .skipMemoryCache(true)
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .override(100, 100)
+                        .transform(new GlideCircleTransform(context))
+                        .error(R.drawable.ic_default_avatar);
+
+            }
+
+        }
+        return myOptions;
+
+    }
+
+    /**
+     * 加载GIF
+     *
+     * @param context
+     * @param
+     * @param imageVie
+     */
+    public static void lGif(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+                .load(url)
+                .apply(gifOption)
+                .into(imageVie);
+    }
+
+
+    /**
+     * @param context
+     * @param url
+     * @param imageVie
+     * 动态加载动态图
+     */
+    public static void lGifTo(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+                .load(url)
+                .apply(myOptionAdapter4)
+                .into(imageVie);
+    }
+
+
+    public static void lGifto(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+                .load(url)
+                .apply(gifOptionTo)
+                .into(imageVie);
+    }
+
+
+
+
+    /**
+     * 加载广告
+     *
+     * @param context
+     * @param url
+     * @param imageVie
+     * @param i
+     */
+    public static void lImg(Context context, String url, ImageView imageVie, int i) {
+
+        Glide.with(context).asBitmap().load(getRealImg(url)).apply(myOptions).into(imageVie);
+
+    }
+
+
+    /**
+     * @param context
+     * @param url
+     * @param imageVie 不设置缓存
+     */
+    public static void NoLImg(Context context, String url, ImageView imageVie) {
+
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(adversOption)
+                .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                .into(imageVie);
+    }
+
+    //不是圆,没有限定大小
+    public static void lImg(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(myOption)
+                .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                .into(imageVie);
+    }
+
+
+
+
+    public static void lImg1(Context context, String url, ImageView imageVie) {
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(myOptionAdapter2)
+                .into(imageVie);
+    }
+
+    /**
+     * 没有占位图
+     * @param context
+     * @param url
+     * @param imageVie
+     */
+    public static void lImg3(Context context, String url, ImageView imageVie) {
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(adsOptionsNo)
+                .into(imageVie);
+    }
+
+
+    /**
+     * 指定大小
+     * @param context
+     * @param url
+     * @param imageVie
+     * @param Width
+     * @param height
+     */
+    public static void lImgHot(Context context, String url, ImageView imageVie,int Width ,int height) {
+
+          RequestOptions myOptionAdapter2 = new RequestOptions()
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .placeholder(R.drawable.bg_need_error)
+                .error(R.drawable.bg_need_error)
+                .override(Width, height)
+                .skipMemoryCache(true);
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(myOptionAdapter2)
+                .into(imageVie);
+    }
+
+    public static void lImg2(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+
+                .load(getRealImg(url))
+                .apply(myOptionAdapter)
+                .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                .into(imageVie);
+    }
+
+
+
+
+    private static Drawable zoomDrawable(Drawable drawable, float w, float h) {
+        int width = drawable.getIntrinsicWidth();
+        int height = drawable.getIntrinsicHeight();
+        Bitmap oldbmp = drawableToBitmap(drawable);
+        Matrix matrix = new Matrix();
+        float scaleWidth = ((float) w / width);
+        float scaleHeight = ((float) h / height);
+
+        Log.e("Adakda", "scaleWidth:" + scaleWidth + "--setHeight1:" + scaleHeight);
+
+
+        matrix.postScale(scaleWidth, scaleHeight);
+        Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);
+        return new BitmapDrawable(null, newbmp);
+    }
+
+
+    private static Bitmap drawableToBitmap(Drawable drawable) {
+        int width = drawable.getIntrinsicWidth();
+        int height = drawable.getIntrinsicHeight();
+        Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
+                : Bitmap.Config.RGB_565;
+        Bitmap bitmap = Bitmap.createBitmap(width, height, config);
+        Canvas canvas = new Canvas(bitmap);
+        drawable.setBounds(0, 0, width, height);
+        drawable.draw(canvas);
+        return bitmap;
+    }
+
+
+    //不是圆,没有限定大小,没有centerCrop()
+    public static void lImgNOCenterCp(Context context, String url, ImageView imageVie) {
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(CirmyOptions)
+                //.transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                .into(imageVie);
+
+    }
+
+
+    /**
+     *
+     * 只针对头像
+     * @param context
+     * @param url
+     * @param imageView
+     * @param Width
+     * @param height
+     */
+    public static void lImgAvator(Context context, String url, ImageView imageView,int Width ,int height){
+
+        RequestOptions myOptions = new RequestOptions()
+                .centerCrop()
+                .placeholder(R.drawable.ic_default_avatar)
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .override(Width, height)
+                .transform(new GlideCircleTransform(context))
+                .error(R.drawable.ic_default_avatar);
+
+
+        if (context != null) {
+            Glide.with(context)
+                    .load(getRealImg(url))
+                    .apply(myOptions)
+                    //.transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                    .into(imageView);
+        }
+
+
+    }
+
+    /**
+     *
+     * @param context
+     * @param bitmap
+     * @param imageView
+     */
+    public static void lImgAvator(Context context, Bitmap bitmap, ImageView imageView){
+        RequestOptions myOptions = new RequestOptions()
+                .centerCrop()
+                .placeholder(R.drawable.ic_default_avatar)
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .transform(new GlideCircleTransform(context))
+                .error(R.drawable.ic_default_avatar);
+
+
+        if (context != null) {
+            Glide.with(context)
+                    .load(bitmap)
+                    .apply(myOptions)
+                    .into(imageView);
+        }
+
+
+    }
+
+
+
+    //大小100X100
+    public static void lImg(Context context, String url, ImageView imageView, Drawable error_drawable, boolean isCircle) {
+
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(getoptionstwo(context, error_drawable, isCircle))
+                        .transition(new DrawableTransitionOptions().crossFade(150))//渐显效果
+                        .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 void lImg(Context context, String url, ImageView imageView, boolean isCircle, boolean hasPlaceHolder) {
+
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                RequestOptions CirmyOptions;
+
+                if (isCircle) {//圆形图片
+                    CirmyOptions = new RequestOptions()
+                            .centerCrop()
+                            .circleCrop()
+                            .skipMemoryCache(true)
+                            .placeholder(R.drawable.bg_need_error)
+                            .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);
+
+            }
+        }
+    }
+
+
+    //need小测里的图片的设置,图片是全屏 设置480X800,列表是480X200(主要这两种)
+    //不是圆
+    //2.素材
+    public static void testLimg(Context context, String url, ImageView imageView, int a, int b) {
+
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(getoptionstest(a, b))
+                .into(imageView);
+    }
+
+
+    //大小200X200,不是圆
+    public static void fixedLimgN(Context context, String url, ImageView imageView) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(fixedOptions)
+                .into(imageView);
+    }
+    public static void fixedLimgNoCache(Context context, String url, ImageView imageView) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(fixedOptionsNoCache)
+                .into(imageView);
+    }
+
+    //大小200X200,头像
+    public static void fixedLimgavator(Context context, String url, ImageView imageView) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(fixedavator)
+                .into(imageView);
+    }
+
+
+
+
+    //大小112X66,不是圆
+    public static void fixedLimgNHome(Context context, String url, ImageView imageView) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(fixedOptionsHome)
+                .into(imageView);
+    }
+
+
+    //可以设置错误的加载图片  不是圆  没有限制大小
+    public static void lImgN(Context context, String url, ImageView imageView, Drawable errorDrawable) {
+
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                RequestOptions options;
+                if (null != errorDrawable) {
+
+                    options = new RequestOptions()
+                            .centerCrop()
+                            .diskCacheStrategy(DiskCacheStrategy.ALL)
+                            .error(errorDrawable);
+                } else {
+
+                    options = new RequestOptions()
+                            .centerCrop()
+                            .diskCacheStrategy(DiskCacheStrategy.ALL)
+                            .error(R.drawable.bg_need_error);
+
+                }
+
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(options)
+                        .into(imageView);
+
+            }
+        }
+    }
+
+    //大小100X100,不是圆
+    public static void lImg(Context context, int resourceId, ImageView imageView) {
+        if (context != null) {
+
+            Glide.with(context)
+                    .load(resourceId)
+                    .apply(myOptions)
+                    .into(imageView);
+
+        }
+    }
+
+    //大小100X100,不是圆
+    public static void lImgNoScale(Context context, String url, ImageView imageView) {
+
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(myOptions)
+                        .into(imageView);
+
+
+            }
+        }
+    }
+
+
+
+    //大小100X100, 圆
+    public static void lImgCircle(Context context, String url, ImageView imageView) {
+
+        if (!TextUtils.isEmpty(url)) {
+
+
+            if (context != null) {
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(getoptionsto(context))
+                        .into(imageView);
+            }
+        }
+    }
+
+    //大小100X100, 圆
+    public static void lImgCircle(Context context, Integer resourceId, ImageView imageView) {
+
+//        if (!TextUtils.isEmpty(url)) {
+        if (context != null) {
+
+
+            Glide.with(context)
+                    .load(resourceId)
+                    .apply(getoptionsto(context))
+                    .into(imageView);
+
+        }
+    }
+
+    //大小100X100, 圆角
+    public static void lImgRound(Context context, String url, ImageView imageView) {
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+
+                RequestOptions myOptions = new RequestOptions()
+                        .centerCrop()
+                        .bitmapTransform(new GlideCircleTransform(context))
+                        .transform(new GlideRoundTransform(context, 6))
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .override(100, 100)
+                        .error(R.drawable.ic_default_avatar);
+
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(myOptions)
+                        .into(imageView);
+
+
+            }
+        }
+    }
+
+
+    /**
+     * @param context
+     * @param url
+     * @param imageView
+     * @param iscenterCrop  true:centerCrop()
+     * 没有截取
+     */
+    public static void lImgRound(Context context, String url, ImageView imageView,boolean iscenterCrop){
+        if (context != null) {
+            RequestOptions myOptions;
+            if(iscenterCrop){
+                myOptions = new RequestOptions()
+                        .centerCrop()
+                        .bitmapTransform(new GlideCircleTransform(context))
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .error(R.drawable.ic_default_avatar);
+            }else{
+                myOptions = new RequestOptions()
+                        .bitmapTransform(new GlideCircleTransform(context))
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .error(R.drawable.ic_default_avatar);
+
+            }
+
+            Glide.with(context)
+                    .load(getRealImg(url))
+                    .apply(myOptions)
+                    .into(imageView);
+
+
+        }
+
+
+    }
+
+
+
+    //给定角度 大小没有限制
+    public static void lImgRound(Context context, String url, ImageView imageView, int radius,int whdth,int height) {
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                RequestOptions myOptions = new RequestOptions()
+                        .centerCrop()
+                        .bitmapTransform(new GlideCircleTransform(context))
+                        .transform(new GlideRoundTransform(context, radius))
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .override(whdth, height)
+                        .error(R.drawable.bg_need_error);
+
+
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(myOptions)
+                        .into(imageView);
+
+            }
+        }
+    }
+
+    private static RequestOptions fitMyOption;
+    public static void getImgWidth(Context context, String url, ImageView imageView,int radius) {
+        if(fitMyOption==null){
+            fitMyOption = new RequestOptions()
+                    .transform(new GlideRoundTransform(context, radius))
+                    .placeholder(R.drawable.bg_need_error)
+                    .error(R.drawable.bg_need_error);
+        }
+        Glide.with(context)
+                .load(url)
+                .apply(fitMyOption)
+                .into(new SimpleTarget<Drawable>() {
+                    @Override
+                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
+                        ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
+                        layoutParams.width = layoutParams.height*9/8;
+                        imageView.setLayoutParams(layoutParams);
+                        imageView.setImageDrawable(resource);
+                    }
+                });
+    }
+    //给定角度 大小没有限制
+    public static void lImgRound(Context context, String url, ImageView imageView, int radius) {
+        if (!TextUtils.isEmpty(url)) {
+            if (context != null) {
+                RequestOptions myOptions = new RequestOptions()
+                        .centerCrop()
+                        .bitmapTransform(new GlideCircleTransform(context))
+                        .transform(new GlideRoundTransform(context, radius))
+                        .diskCacheStrategy(DiskCacheStrategy.ALL)
+                        .skipMemoryCache(true)
+                        .error(R.drawable.bg_need_error);
+
+
+                Glide.with(context)
+                        .load(getRealImg(url))
+                        .apply(myOptions)
+                        .into(imageView);
+
+            }
+        }
+    }
+
+
+    public static void displayNative(final ImageView view, @DrawableRes int resId) {
+        // 不能崩
+        if (view == null) {
+            Log.e(TAG, "GlideUtils -> display -> imageView is null");
+            return;
+        }
+        Context context = view.getContext();
+        // View你还活着吗?
+        if (context instanceof Activity) {
+            if (((Activity) context).isFinishing()) {
+                return;
+            }
+        }
+        try {
+            Glide.with(context)
+                    .load(resId)
+                    .apply(myOptions)
+                    .into(view)
+                    .getSize(new SizeReadyCallback() {
+                        @Override
+                        public void onSizeReady(int width, int height) {
+                            view.setVisibility(View.VISIBLE);
+                        }
+                    });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void cleanData(Context context) {
+//        new Thread(() -> Glide.netInstance(context).clearDiskCache()).start();
+//        Glide.netInstance(context).clearMemory();
+    }
+
+
+
+
+    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 void specifyFillet(Context context, String imgurl, ImageView imageView) {
+        RequestOptions myOptions = new RequestOptions()
+                .fitCenter()
+                .bitmapTransform(new GlideCircleTransform(context))
+                .transform(new GlideTransform(context))
+                .diskCacheStrategy(DiskCacheStrategy.ALL)
+                .skipMemoryCache(true)
+                .centerCrop()
+//                .override(200, 200)
+                .override(Target.SIZE_ORIGINAL)
+                .error(R.drawable.bg_need_error);
+
+        Glide.with(context)
+                .load(getRealImg(imgurl))
+                .apply(myOptions)
+                .into(imageView);
+    }
+
+
+    private static RequestOptions myOptionAdapter_one = new RequestOptions()
+            .diskCacheStrategy(DiskCacheStrategy.ALL)
+//            .placeholder(R.drawable.bg_need_priority)
+            //.error(R.drawable.bg_need_priority)
+            .skipMemoryCache(true);
+
+    //不是圆,没有限定大小
+    public static void lImgAdapter(Context context, String url, ImageView imageVie) {
+        Glide.with(context)
+                .load(getRealImg(url))
+                .apply(myOptionAdapter_one)
+                .transition(new DrawableTransitionOptions().crossFade(300))//渐显效果
+                .into(new SimpleTarget<Drawable>() {
+                    @Override
+                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
+                        int intrinsicWidth = resource.getIntrinsicWidth();
+                        int intrinsicHeight = resource.getIntrinsicHeight();
+
+                        int setWidth = 0;
+                        int setHeight = 0;
+
+                        ViewGroup.LayoutParams para = imageVie.getLayoutParams();
+
+
+                        int screenWidthPixels = UiUtils.getScreenWidthPixels() - UiUtils.dp2Px(context, 30);//屏幕的宽度减去两个间隙
+
+                        float scale;
+                        Drawable drawable;
+                        //宽 > 高
+                        if (intrinsicWidth > intrinsicHeight) {
+
+                            setWidth = (int) (screenWidthPixels * 0.6);//固定的宽度
+                            //计算高度
+                            int b = (intrinsicWidth / setWidth);
+                            if (b == 0) {
+                                setHeight = (int) (setWidth / 1.5);
+                            } else {
+                                setHeight = (int) (intrinsicHeight / b);//计算出高度
+
+                            }
+
+                            Log.e("-BBB--", "setWidth=: " + setWidth);
+
+                            Log.e("-BBB--", "setHeight=: " + setHeight);
+
+                            drawable = zoomDrawable(resource, setWidth, setHeight);
+
+                            para.height = (int) (setHeight);
+                            para.width = (int) (setWidth);
+                            imageVie.setImageDrawable(drawable);
+
+
+                        } else {
+                            //宽 < 高
+                            //高度
+                            setHeight = (int) (screenWidthPixels * 0.7);
+
+                            setWidth = intrinsicWidth * setHeight / intrinsicHeight;
+
+                            para.height = (int) (setHeight);
+                            para.width = (int) (setWidth);
+
+                            Log.e("adsasd", "setWidth:" + setWidth + "");
+                            Log.e("adsasd", "setHeight:" + setHeight + "");
+
+                            drawable = zoomDrawable(resource, setWidth, setHeight);
+                            imageVie.setImageDrawable(drawable);
+                        }
+                  }
+                });
+    }
+
+
+
+    public static void ControlsChange2(Context constant, String url, ImageView imageView) {
+
+        Glide.with(constant)
+                .load(getRealImg(url))
+                .apply(re_ControlsChange2)
+                .into(imageView);
+
+    }
+
+
+
+
+}

+ 27 - 25
app/src/main/res/layout/activity_collect_details.xml

@@ -55,6 +55,8 @@
                             android:background="@drawable/bg_need_error"
                             android:scaleType="centerCrop" />
 
+
+
                         <TextView
                             android:layout_width="0dp"
                             android:layout_height="wrap_content"
@@ -146,7 +148,6 @@
                                 android:textStyle="bold" />
 
 
-
                         </LinearLayout>
 
                         <LinearLayout
@@ -243,7 +244,6 @@
                                 android:textStyle="bold" />
 
 
-
                         </LinearLayout>
 
                         <LinearLayout
@@ -571,64 +571,67 @@
             android:layout_width="match_parent"
             android:layout_height="50dp"
             android:gravity="center"
-            android:orientation="horizontal"
-            >
+            android:orientation="horizontal">
 
             <LinearLayout
                 android:id="@+id/ll_certificate"
                 android:layout_width="wrap_content"
+                android:layout_height="match_parent"
                 android:layout_marginStart="20dp"
-                android:orientation="vertical"
                 android:gravity="center"
-                android:layout_height="match_parent">
+                android:orientation="vertical">
+
                 <ImageView
-                    android:src="@drawable/ct_shu"
                     android:layout_width="18dp"
-                    android:layout_height="18dp"/>
+                    android:layout_height="18dp"
+                    android:src="@drawable/ct_shu" />
+
                 <TextView
-                    android:text="证书"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
+                    android:text="证书"
                     android:textColor="#222222"
-                    android:textSize="10sp"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"/>
+                    android:textSize="10sp" />
 
             </LinearLayout>
 
             <LinearLayout
                 android:id="@+id/ll_given"
                 android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_marginStart="63dp"
                 android:gravity="center"
                 android:onClick="@{v->vm.toGiven()}"
-                android:orientation="vertical"
-                android:layout_marginStart="63dp"
-                android:layout_height="match_parent">
+                android:orientation="vertical">
+
                 <ImageView
-                    android:src="@drawable/ct_gift"
                     android:layout_width="18dp"
-                    android:layout_height="18dp"/>
+                    android:layout_height="18dp"
+                    android:src="@drawable/ct_gift" />
+
                 <TextView
-                    android:text="转赠"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
+                    android:text="转赠"
                     android:textColor="#222222"
-                    android:textSize="10sp"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"/>
+                    android:textSize="10sp" />
 
             </LinearLayout>
 
 
             <View
                 android:layout_width="0dp"
-                android:layout_weight="1"
-                android:layout_height="match_parent"/>
+                android:layout_height="match_parent"
+                android:layout_weight="1" />
 
             <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
                 android:layout_width="180dp"
                 android:layout_height="36dp"
                 android:layout_marginEnd="25dp"
-                android:text="寄售"
                 android:onClick="@{v->vm.toSell()}"
+                android:text="寄售"
                 android:textColor="@color/white"
                 android:textSize="16sp"
                 app:qmui_backgroundColor="#38D3D3"
@@ -639,6 +642,5 @@
         </LinearLayout>
 
 
-
     </LinearLayout>
 </layout>

+ 1 - 0
app/src/main/res/layout/activity_tibetan_details.xml

@@ -55,6 +55,7 @@
                             android:background="@drawable/bg_need_error"
                             android:scaleType="centerCrop" />
 
+
                     </FrameLayout>
 
                     <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout

+ 2 - 2
app/src/main/res/layout/item_my_box.xml

@@ -27,7 +27,7 @@
             app:qmui_borderColor="@color/translucent"
             app:qmui_radius="@dimen/dp_12"
             android:orientation="vertical"
-            android:layout_height="220dp">
+            android:layout_height="200dp">
 
 <!--        <com.qmuiteam.qmui.layout.QMUILinearLayout-->
 <!--            android:layout_width="match_parent"-->
@@ -40,7 +40,7 @@
 
             <FrameLayout
                 android:layout_width="match_parent"
-                android:layout_height="160dp">
+                android:layout_height="140dp">
 
                 <androidx.appcompat.widget.AppCompatImageView
                     android:id="@+id/img_bg"