如果 scaleType 为 centerCrop,则 Glide RoundedCornersTransformation 不进行任何更改
Glide RoundedCornersTransformation not making any changes if scaleType is centerCrop
我正在使用 Glide 4.3.0
和 wasabeef/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_LEFT
和CornerType.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 库转换。
我正在使用 Glide 4.3.0
和 wasabeef/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_LEFT
和CornerType.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 库转换。