如果 scaleType 为 centerCrop,则 Glide RoundedCornersTransformation 不进行任何更改

Glide RoundedCornersTransformation not making any changes if scaleType is centerCrop

我正在使用 Glide 4.3.0wasabeef/glide-transformations 在图像视图的左下角和右下角添加圆角半径。图像已加载但未应用转换,我没有看到角落有任何变化。

这是我的 Glide 转换:

Glide.with(context)
    .load(message.imageUrl)
    .apply(bitmapTransform(new RoundedCornersTransformation(25, 0, RoundedCornersTransformation.CornerType.BOTTOM)))
    .into(aq.id(R.id.ivSingleImage).getImageView());

我的导入如下:

import com.bumptech.glide.Glide;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
import static com.bumptech.glide.request.RequestOptions.bitmapTransform;

图像已加载但未应用任何转换。这个实现是否正确?

我也试过CornerType.BOTTOM_LEFTCornerType.BOTTOM_RIGHT

编辑

我注意到只有当 scaleType 设置为 centerCrop 时才会出现这种情况。如果我从 XML 中删除它,它可以工作,但在图像的左右两侧有 2 个大空间:

<ImageView
     android:id="@+id/ivSingleImage"
     android:layout_width="match_parent"
     android:layout_height="100dp"
     android:layout_marginRight="5dp"
     android:layout_weight="1"
     android:background="@color/white"
     android:scaleType="centerCrop" <!--Removing this works. But leaves two spaces on left and right sides-->
     android:layout_marginEnd="5dp" />

参考update^,如何实现图片centerCrop的同时还有圆角变换?

找到解决方案。解决方案使用 MultiTransformation 和我在问题中提到的 glide-transformations 库中的 CenterCrop 转换。

解决方案如下:

MultiTransformation multiLeft = new MultiTransformation(
     new CenterCrop(),
     new RoundedCornersTransformation(25, 0, RoundedCornersTransformation.CornerType.BOTTOM_LEFT));

Glide.with(context)
     .load(message.imageUrl)
     .apply(bitmapTransform(multiLeft))
     .into(aq.id(R.id.ivSingleImage).getImageView());

在 XML 的 scaleType 属性中使用 centerCrop 不适用于 Glide 库转换。