【多张图片时,圆角处理不一致】Glide 加载圆角图片大小不一的问题

问题描述:图片如下:两张图片大小不一样,比例也不一样。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))
发布了74 篇原创文章 · 获赞 58 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/Jason_996/article/details/83060940