Android 解决RecyclerView瀑布流效果结合Glide使用时图片变形的问题
2017-12-27 18:19
806 查看
问题描述:使用Glide加载RecyclerView的Item中的图片,RecyclerView使用了瀑布流展示图片,但是滚动时图片会不断的加载,并且大小位置都会改变,造成显示错乱。
解决方法:使用瀑布流,我们可以根据要展示的列数来将屏幕宽度等分,从而获得Item的宽度。知道了宽度,那么我们就可以使用Glide的override()方法根据图片的比例自适应地放大或缩小得到合适的高度。这样显示时就不会由错乱的问题了。
步骤1:设置Item的最外层布局的layout_height为wrap_content(当然也可以设置一个固定大小),如果Item里面的图片也设置高度为wrap_content;
步骤2:先得到屏幕的宽高,然后根据要显示的列数进行均分。比如我现在想要展示列数为2的瀑布流,我们就可以把屏幕宽度除以2,得到图片的宽度。
步骤3:用Glide加载图片
然后再尝试一下上下滚动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,你会发现之前图片变形错位的问题都解决了。
相关文章推荐
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- Android中Recyclerview使用13----实现瀑布流遇到的各种问题(item移动,加载更多图片闪烁,以及定制各种类型Header和Footer)
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- 使用RecyclerView和Glide实现图片瀑布流(防止错位)
- Android 中 WebView 与 js 简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题
- 【Android】Glide结合Recyclerview(也适用于Listview)实现列表滑动的时候图片不加载,滑动停止的时候加载(已修正Listview部分以及排版)
- 使用Android Studio 练习RecyclerView 异步加载图片,解决图片乱序问题。
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- Android使用Recyclerview实现图片水平自动循环滚动效果
- Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- Android ListView,GridView,RecyclerView图片加载错位闪动问题解决办法
- Android使用Recyclerview实现图片水平自动循环滚动效果
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- 如何解决Android eclipse 使用RecyclerView和CardView控件时报错问题
- (4.1.11.1)Android中使用RecyclerView和CardView实现瀑布流效果(StaggeredGrid)
- Android自定义控件:imageview重写onMeasure方法实现图片按指定比例显示,拉伸永不变形,解决屏幕适配问题
- Android中使用RecyclerView和CardView实现瀑布流效果(StaggeredGrid)
- Android RecyclerView+StaggeredGridLayoutManager实现瀑布流图片闪烁问题
- android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)