解决RecyclerView瀑布流效果结合Glide使用时图片变形的问题

问题描述:使用Glide加载RecyclerView的Item中的图片,RecyclerView使用了瀑布流展示图片,但是滚动时图片会不断的加载,并且大小位置都会改变,造成显示错乱。

解决方法:使用瀑布流,我们可以根据要展示的列数来将屏幕宽度等分,从而获得Item的宽度。知道了宽度,那么我们就可以使用Glide的override()方法根据图片的比例自适应地放大或缩小得到合适的高度。这样显示时就不会由错乱的问题了。

步骤1:设置Item的最外层布局的layout_height为wrap_content(当然也可以设置一个固定大小),如果Item里面的图片也设置高度为wrap_content;

 

步骤2:先得到屏幕的宽高,然后根据要显示的列数进行均分。比如我现在想要展示列数为2的瀑布流,我们就可以把屏幕宽度除以2,得到图片的宽度。

//屏幕的宽度(px值)
int screenWidth = getContext().getResources().getDisplayMetrics().widthPixels;
//Item的宽度,或图片的宽度
int width = screenWidth/2;

 

步骤3:用Glide加载图片

//这里的SIZE_ORIGINAL为Gilde里自带的参数,不是我定义的常量
Glide.with(getContext()).load(item.getUrl()).override(width,SIZE_ORIGINAL)          
.fitCenter().into(imageview);

 

然后再尝试一下上下滚动RecyclerView,你会发现之前图片变形错位的问题都解决了。

转载于:https://www.cnblogs.com/weimore/p/7769072.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值