美文网首页
Glide设置RoundedCorners & CenterCr

Glide设置RoundedCorners & CenterCr

作者: 南窗云 | 来源:发表于2021-04-22 12:01 被阅读0次

    问题

    需要对网络图片进行圆角裁剪和居中裁剪

    设置网络图片的圆角及居中裁剪

    只设置圆角,如下:

        val options = RequestOptions.bitmapTransform(RoundedCorners(16.dp))
    

    只设置居中剪裁

        // 方案一
       videoImageView = ImageView(context).apply { 
            scaleType = ImageView.ScaleType.CENTER_CROP
       }
    
        // 方案二
        GlideApp.with(this).load(item.fragments().media().pics()?.get(0))
            .centerCrop()
            .error(R.drawable.ic_avatar_teacher)
            .placeholder(R.drawable.ic_avatar_teacher).into(it)
    

    两者同时设置,则最后设置的才会生效,前面的设置被覆盖。

    解决方案

    切圆角 & 居中裁剪

        val options =
                RequestOptions().transform(MultiTransformation(CenterCrop(), RoundedCorners(16.dp)))
    

    注意,CenterCrop 和 RoundedCorners 的顺序,调换顺序则不生效。
    先裁剪的圆角,有可能被后面的居中剪裁剪掉

    完整代码如下

           // 切圆角 & CenterCrop
            val options =
                RequestOptions().transform(MultiTransformation(CenterCrop(), RoundedCorners(16.dp)))
            videoImageView?.let {
                GlideApp.with(this).load(item.fragments().media().pics()?.get(0))
                    .apply(options).error(R.drawable.ic_avatar_teacher)
                    .placeholder(R.drawable.ic_avatar_teacher).into(it)
            }
    

    或者直接设置 transform ,也是可以的

      GlideApp.with(this).load(item.fragments().media().pics()?.get(0))
                    .transform(CenterCrop(), RoundedCorners(16.dp)).error(R.drawable.ic_avatar_teacher)
                    .placeholder(R.drawable.ic_avatar_teacher).into(it)
    

    相关文章

      网友评论

          本文标题:Glide设置RoundedCorners & CenterCr

          本文链接:https://www.haomeiwen.com/subject/mfbxrltx.html