安卓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;
} 

参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网格GridView)是Android中一个常用的布局控件,它可以让多个子控件以网格形式排列。图片(ImageView)和文字(TextView)是两种常见的子控件。 下面是一个简单的示例代码,展示了如何在网格显示多个图片和对应的文字: 布局文件(grid_item.xml): ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher_background" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/image" android:layout_centerHorizontal="true" android:text="Text" /> </RelativeLayout> ``` Activity中的代码: ```java public class MainActivity extends AppCompatActivity { private GridView mGridView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGridView = findViewById(R.id.grid_view); mGridView.setAdapter(new GridAdapter(this)); } private class GridAdapter extends BaseAdapter { private Context mContext; public GridAdapter(Context context) { mContext = context; } @Override public int getCount() { return 6; // 6个item } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_item, parent, false); } // 设置图片和文字 ImageView imageView = convertView.findViewById(R.id.image); imageView.setImageResource(R.drawable.ic_launcher_background); TextView textView = convertView.findViewById(R.id.text); textView.setText("Item " + position); return convertView; } } } ``` 在这个示例中,我们使用了一个自定义的Adapter(GridAdapter),来为GridView提供数据源和子控件的显示。在Adapter的getView()方法中,我们使用了grid_item.xml布局文件来为每个子控件设置布局和样式。同时,我们还可以通过调用ImageView和TextView的方法来设置对应的图片和文字。 注意,在实际开发中,我们可能需要根据具体需求对布局文件和Adapter进行自定义。以上代码仅作为一个简单的示例供参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值