问题描述:图片如下:两张图片大小不一样,比例也不一样。imageView的控件大小:540px X 720px (3:4)
(第一张图是3:4的宽高比)(第二张图是7.5:3的宽高比),导致到圆角不一样
代码如下:
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
Glide.with(context)
.load(path)
.placeholder(R.mipmap.adversetiment_none)
.error(R.mipmap.adversetiment_none)
.transform(new GlideRoundTransform(mContext, 4))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
}
}
方法一:解决此问题:代码如下(有一点,必须图片的的比例是一样,是3:4)
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
Glide.with(context)
.load(path)
.placeholder(R.mipmap.adversetiment_none)
.error(R.mipmap.adversetiment_none)
//重写图片大小
.override(540,720)
//transfrom的同时传入一个Fitcenter(),先将图片变换为固定的大小
.transform(new FitCenter(mContext),new GlideRoundTransform(mContext, 4))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
}
}
总结:使用了transfrom的重载方法,在传进去transfrom的同时传入一个Fitcenter(),先将图片变换为固定的大小,然后在此基础上在进行裁剪,再次运行之后所有的项的圆角就看着一般大了。
注意:图片的比例要一致,才能用上面的代码解决问题。
要想图片完全不限制比例,宽高,方法还没有找到。
方法二:还有一个小方法可以实现,不限制比例,宽高,如下图 (圆角没有问题,但图片会按中心裁切,会显示不完整):
代码如下:FitCenter 改成 CenterCrop 就行
.transform(new CenterCrop(mContext),new GlideRoundTransform(mContext, 4))