安卓recyclerview采用网格流(gridview)控制图片显示大小相同

需要在一般recyclerview中三处添加代码

先看公式

 宽度 = recyclerView的宽度 ÷ 列数且recyclerView
 宽度 = gridLayoutManager.getWidth();列数 = gridLayoutManage.getSpanCount();
 width = gridLayoutManager.getWidth()/gridLayoutManage.getSpanCount();

在自己定义的适配器中加

public RecyclerViewAdapter(Context context, ArrayList list, OnItemClickListener listener,GridLayoutManager glm) { 
this.list = list;
 this.context = context; 
 this.glm = glm; }

主活动中调用

 GridLayoutManager glm_sys = new GridLayoutManager(getContext(),7);//分为7列 recycler_sys.setLayoutManager(glm_sys); 
 //设置布局管理器 
 recycler_sys.setAdapter(new RecyclerViewAdapter(getContext(),item_list_sys,glm_sys)); 

适配器onBindViewHolder中

 public void onBindViewHolder(SysWebHolder holder, final int position) { 
 ...//省略获取button实例的代码 
 ViewGroup.LayoutParams parm = holder.button_img.getLayoutParams(); 
 parm.height = glm.getWidth()/glm.getSpanCount() - 2*holder.button_img.getPaddingLeft() - 2*((ViewGroup.MarginLayoutParams)parm).leftMargin;
} 

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值