Glide 圆角+居中裁剪centerCrop冲突问题

RequestOptions 源码:

  public RequestOptions centerCrop() {
    return transform(DownsampleStrategy.CENTER_OUTSIDE, new CenterCrop());
  }

  public RequestOptions transform(@NonNull Transformation transformation) {
    return transform(transformation, /*isRequired=*/ true);
  }

centerCrop本质也是调用transform,同时设置,会有一个被覆盖失去效果。

解决:


Glide.with(this@CheckRecordActivity)
    .load(AppConfig.HOST_PIC + item.fileInfo?.id)
    .apply(RequestOptions().apply {
        placeholder(R.mipmap.check_record_item_default)
        error(R.mipmap.check_record_item_default)
        diskCacheStrategy(DiskCacheStrategy.NONE)
        skipMemoryCache(true)
        withCrossFade()
        transform(MultiTransformation(CenterCrop(), RoundedCorners(20)))
    })
    .into(holder.getView(R.id.iv_check_record))

核心: transform(MultiTransformation(CenterCrop(), RoundedCorners(20)))

即 : 圆角和CenterCrop 同时设置生效

你可能感兴趣的:(Glide 圆角+居中裁剪centerCrop冲突问题)