android的recyView设置item先是不同的高度,类似瀑布流

2023-12-06 15:32

本文主要是介绍android的recyView设置item先是不同的高度,类似瀑布流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决方案是:在adapter里获取了item的高度做了一个数值范围内(设置高度的下限和高度的上限,这里设置的高度是最低值加上一个范围内的随机数的值),这样就ok了,这里的适配器集成了万能的适配器BRVAH

public class BRVAHImgAdapter extends BaseQuickAdapter<ImgEntryResponse, BaseViewHolder> {private final static String IMG_URL = CommonServerUrl.IMG_SERVER_URL;//最新地址List<ImgEntryResponse> mBRVAHImgObjList;//构造public BRVAHImgAdapter(int layoutResId, List<ImgEntryResponse> data) {super(layoutResId, data);}@Overrideprotected void convert(@NonNull BaseViewHolder helper, ImgEntryResponse item) {//helper.setText(R.id.id_text, "第" + helper.getAdapterPosition() + "个数据");ImageView img_view = helper.getView(R.id.iv_indexImg_brvah);String url = IMG_URL + item.getPT();Glide.with(mContext).load(url).placeholder(R.drawable.prestrain_icon)//加载占位图/图片未加载,提前展示给用户
//                .skipMemoryCache(true)
//                .diskCacheStrategy(DiskCacheStrategy.NONE).fitCenter().listener(new RequestListener<Drawable>() {@Overridepublic boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {Log.d("Wain", "BRVAH成功le加载失败 errorMsg:" + (e != null ? e.getMessage() : "null"));return false;}@Overridepublic boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {Log.d("BRVAH成功le", "BRVAH成功le  Drawable Name:" + resource.getClass().getCanonicalName());return false;}}).into(img_view);// helper.setText(R.id.tv_imgName, item.getD());int position = helper.getLayoutPosition();Log.d("当前条目的位置++", position + "");//获取item宽度,计算图片等比例缩放后的高度,为imageView设置参数ViewGroup.LayoutParams params = img_view.getLayoutParams();WindowManager wm= (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);int width = wm.getDefaultDisplay().getWidth();//设置图片的相对于屏幕的宽高比params.width = width / 2;params.height = (int) (260 + Math.random() * 330);//设置随机高度img_view.setLayoutParams(params);}}

这篇关于android的recyView设置item先是不同的高度,类似瀑布流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462329

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx