Glide设置RoundedCorners & CenterCr

2021-04-22  本文已影响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)
上一篇 下一篇

猜你喜欢

热点阅读