问题
需要对网络图片进行圆角裁剪和居中裁剪
只设置圆角,如下:
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)