Glide4.9版本自定义下载类型

这是个工具类,主要看loadCornersImgByLocal方法中的逻辑

示例代码如下:

class GlideUtil {
    companion object{
        /** 加载网络图片 */
        fun loadNormalImgByNet(context: Context,netUrl: String,imageView: ImageView){
            Glide.with(context).load(netUrl).apply(normalOption()).into(imageView)
        }
        /** 加载网络图片 */
        fun loadCircleImgByNet(context: Context,netUrl: String,imageView: ImageView){
            Glide.with(context).load(netUrl).apply(circleOption()).into(imageView)
        }
        /** 加载本地图片 */
        fun loadCircleImgByLocal(context: Context, localUrl: String, imageView: ImageView){
            Glide.with(context).load(Uri.fromFile(File(localUrl))).apply(circleOption()).into(imageView)
        }

        /** 加载资源图片 */
        fun loadCircleImgByResource(context: Context, @RawRes @DrawableRes @Nullable resourceId: Int, imageView: ImageView){
            Glide.with(context).load(resourceId).apply(normalOption()).into(imageView)
        }
        /** 加载本地圆角图片
         *  圆角加载有问题,CustomViewTarget可参考
         * 对于本地圆形图片可以参考使用RoundedBitmapDrawable加载
         * */
        fun loadCornersImgByLocal(context: Context, @RawRes @DrawableRes @Nullable localRes: Int, view: View,roundingRadius: Int){
            Glide.with(context).load(localRes).apply(cornersOption(roundingRadius)).into(object :
                CustomViewTarget<View,Drawable>(view){
                override fun onLoadFailed(errorDrawable: Drawable?) {
                }

                override fun onResourceCleared(placeholder: Drawable?) {
                }

                override fun onResourceReady(
                    resource: Drawable,
                    transition: Transition<in Drawable>?
                ) {
                    view.background = resource
                }
            })
        }

        /** 圆形头像配置 */
        private fun circleOption() = RequestOptions.bitmapTransform(CircleCrop())
                .placeholder(R.drawable.icon_ranking_list_two_default)//
                .error(R.drawable.icon_ranking_list_two_default)//
                .diskCacheStrategy(DiskCacheStrategy.NONE) //不缓存到SD卡

        /** 圆角图片配置 */
        private fun cornersOption(roundingRadius: Int) = RequestOptions.bitmapTransform(RoundedCorners(roundingRadius))
                .placeholder(R.drawable.icon_ranking_list_two_default)//
                .error(R.drawable.icon_ranking_list_two_default)//
                .diskCacheStrategy(DiskCacheStrategy.NONE) //不缓存到SD卡

        /** 普通图片配置 */
        private fun normalOption() = RequestOptions
                .placeholderOf(R.drawable.icon_ranking_list_two_default)//
                .error(R.drawable.icon_ranking_list_two_default)//
                .diskCacheStrategy(DiskCacheStrategy.NONE) //不缓存到SD卡

    }
}
发布了132 篇原创文章 · 获赞 29 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/Mr_Tony/article/details/103937599