大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说gridview(代码创建gridview),希望您对编程的造诣更进一步.
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android
本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
- GridView 主要用法
- GridView 使用案例
GridView 跟ListView 很类似,Listview 主要以列表形式显示数据,GridView 则是以网格形式显示数据,掌握ListView 使用方法后,会很轻松的掌握GridView的使用方法。
GridView 简介
继承关系如下
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<android.widget.ListAdapter>
↳ android.widget.AbsListView
↳ android.widget.GridView
1. GridView 主要使用方法
GridView主要通过使用自定义BaseAdapter 来适配数据,进而显示到GridView中。主要使用方法如下:
1. 准备数据源
list = new ArrayList<Map<String, Object>>();
2. 为数据源设置适配器
MyAdapter adapter = new MyAdapter();
3. 将适配过后点数据显示在GridView 上
gridView.setAdapter(adapter);
2. GridView 使用Demo
- 实现效果如下
GridView
- 实现代码如下
private GridView gridView; private List<Map<String, Object>> list; private int images[] = { R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_grid_view_method); gridView = (GridView) findViewById(R.id.gv); // 1. 准备数据源 list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < images.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("image", images[i]); map.put("text", "图片" + i); list.add(map); } // 2.为数据源设置适配器 MyAdapter adapter = new MyAdapter(); // 3.将适配过后点数据显示在GridView 上 gridView.setAdapter(adapter); // item点击事件处理 gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Toast.makeText(GridViewMethod.this, list.get(position).get("text").toString(), Toast.LENGTH_SHORT).show(); } }); } class MyAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { // 第一次加载创建View,其余复用 View convertView = LayoutInflater.from(GridViewMethod.this).inflate( R.layout.gridview_item_img_tv, null); holder = new ViewHolder(); holder.imageView = (ImageView) convertView .findViewById(R.id.grid_img); holder.textView = (TextView) convertView .findViewById(R.id.grid_tv); // 打标签 convertView.setTag(holder); } else { // 从标签中获取数据 holder = (ViewHolder) convertView.getTag(); } // 根据key值设置不同数据内容 holder.imageView.setImageResource((Integer) list.get(position).get( "image")); holder.textView.setText((String) list.get(position).get("text")); return convertView; } } class ViewHolder { ImageView imageView; TextView textView; }
- GridView 布局如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.android.program.programandroid.ListView.GridViewMethod"> <GridView android:id="@+id/gv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:horizontalSpacing="10dp" android:numColumns="3" android:verticalSpacing="10dp" /> </LinearLayout>
- item 布局 如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/grid_img" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:gravity="center_horizontal" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/grid_tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:textColor="@android:color/darker_gray" android:text="test" android:gravity="center_horizontal" android:textSize="25sp" /> </LinearLayout>
至此GridView 的基本使用方法结束。
如果不是太明白,可以查看上篇文章
ListView 使用详解
友情推荐:
Android 干货分享
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/27716.html