GridView 是按照行列的方式来显示内容的,一般用于显示图片列表,比如九宫格列表,使用
GridView实现起来很简单。GridView 的用法与ListView 类似,首先看图2-36,效果图中显示的两
张图片是网上找的。
1.修改布局文件activity_main.xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><GridViewandroid:id="@+id/gridview"android:numColumns="4"android:scrollbars="none"android:layout_marginBottom="10dp"android:verticalSpacing="10dp"android:horizontalSpacing="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"/>
</RelativeLayout>

GridView控件中的几个属性作用如下:
android:numColumns=“4”:一行显示4列。
android:scrollbars=“none”:去掉滚动条。
android:verticalSpacing=“10dp”:两行之间的间距。
android:horizontalSpacing=“10dp”:两列之间的间距

2.Activity 的代码比较简单,初始化数据、设置适配器、设置点击事件

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private GridView gridview;private List<Integer> images;private GridAdapter gridAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();gridview= (GridView) findViewById(R.id.gridview);gridview.setAdapter(gridAdapter=new GridAdapter(this,images));//item设置点击事件gridview.setOnItemClickListener(onItemClickListener);}private AdapterView.OnItemClickListener onItemClickListener=new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(MainActivity.this,"当前选中了" +":"+position,Toast.LENGTH_SHORT).show();}};//初始化数据源private void initData(){images=new ArrayList<>();for(int i=0;i<100;i++){if(i%2==1){//对2取余数结果为1  0对2取余等于0,所以0不算,结果为:1 3 5 7 9结果为奇数images.add(R.mipmap.test_one);}else{ //0 2 4 6 8 10 为偶数   当i为0时,集合里面添加这个所以test_two在第一个(集合索引0)images.add(R.mipmap.test_two);}}}
}

3.GridView适配器与ListView 适配器类似,GridAdapter.java 代码如下:(因为类似所以代码不
做详细解释)

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;import java.util.List;/*** @author ansen* @create time 2016-12-13*/
public class GridAdapter extends BaseAdapter{//注意:这里继承BaseAdapterprivate LayoutInflater inflater;private List<Integer> images;public GridAdapter(Context context,List<Integer> images){inflater=LayoutInflater.from(context);this.images=images;}@Overridepublic int getCount() {return images.size();//集合的长度(个数)(图片的个数)}@Overridepublic Object getItem(int position) {//每一行绑定的数据源return images.get(position);//集合根据索引获取每张图片}@Overridepublic long getItemId(int position) {return position;//获取图标的索引}//获取每一行的View@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if(convertView==null){viewHolder=new ViewHolder();convertView = inflater.inflate(R.layout.activity_grid_item, parent, false);viewHolder.imageview = (ImageView) convertView.findViewById(R.id.imageview);convertView.setTag(viewHolder);}else{viewHolder= (ViewHolder) convertView.getTag();}viewHolder.imageview.setImageResource(images.get(position));//注意:这个position是局部变量里面的return convertView;}private class ViewHolder{//内部类(把布局item的控件存储到这个类对象里面,方便存储)private ImageView imageview;}
}

3.2 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"><!--android:scaleType="centerCrop" 为了让所有图片充满真个ImageView,是用centerCrop,这里高度设置为70dp--><ImageViewandroid:id="@+id/imageview"android:layout_gravity="center_horizontal"android:layout_width="match_parent"android:layout_height="70dp"android:scaleType="centerCrop"android:src="@mipmap/test_one" />
</LinearLayout>


效果如下所示:

GridView(网格视图)相关推荐

  1. ASP.NET中 DropDownList+GridView(网格视图)的使用前台绑定[高]

    ylbtech-ASP.NET-Control-Bind:DropDownList+GridView(网格视图)的使用前台绑定[高] ASP.NET中 DropDownList+GridView(网格 ...

  2. UI组件之AdapterView及其子类(二)GridView网格视图的使用

    GridView网格视图属性: android:numColumns="auto_fit" --------列数设置为自动,可以为确定的数值 android:columnWidth ...

  3. GridView网格视图的使用

    GridView与ListView基本相似. 第一步就是创建适配器,实现四个方法. package com.example.myapplication.adapter;import android.c ...

  4. Android -- 下拉列表、列表视图、网格视图

    下拉框 -- 文本 Spinner 用于从一串列表中选择某项,功能类似于单选按钮的组合 下拉列表的展示 方式有两种,一种是在当前下拉框的正下方弹出列表框,此时要把spinnerMode属性设置为 dr ...

  5. 高级控件——列表类视图——网格视图GridView

    ======================================================================================= 布局: <Line ...

  6. Android 网格视图GridView

    GridView的视图排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用GirdView.既然有多个元素要显示,就需要使用BaseAdapter来存储这些元素.用户可能 ...

  7. 安卓学习笔记23:常用控件 - 网格视图与图像切换器

    文章目录 零.学习目标 一.网格视图 (一)概述 (二)继承关系图 (三)常用属性 二.图像切换器 (一)概述 (二)继承关系图 三.案例演示 - 选择水果 (一)运行效果 (二)涉及知识点 (三)实 ...

  8. 学习笔记(五)——数据适配器、数据表、数据网格视图控件的综合应用。

    学习笔记(五)--数据适配器.数据表.数据网格视图控件的综合应用. 1.  批量修改 修改包括增加,删除以及更新3个操作,所以声明实力化3个SQL命令分别应用于插入,删除以及修改 将声明的SQL命令连 ...

  9. Android应用开发—通用的GridView网格分割线

    注:本文基于 Android RecyclerView 使用完全解析 体验艺术般的控件 中关于GridView网格分割线部分代码扩展而来. 原接口代码: import android.content. ...

最新文章

  1. 【网站部署】解析二级域名并部署网站
  2. 俄罗斯方块:win32api开发
  3. rabbitmq_management简介
  4. 容器编排技术 -- Kubernetes kubectl create service loadbalancer 命令详解
  5. iOS 数据持久化 NSUserDefault
  6. Wine DLL库安装工具winetricks
  7. Unity3d 枚举某个目录下所有资源
  8. 支付宝疯起来连自己都打
  9. EPLAN史上最全部件库,官网下载,部件宏,EDZ格式,239G,导入后一劳永逸
  10. qq影音4.0 android,QQ影音4.0官方最新正式版
  11. [linux]scp与服务器互传文件
  12. fremaker遍历list_Freemarker中如何遍历List
  13. 【CIPS 2016】(17章)文字识别 (研究进展、现状趋势)
  14. Eclipse官方汉化方法
  15. gpgpu学习推荐书籍
  16. 这里需要一个高端大气上档次的开头
  17. 乘风破浪,一往无前 – Smartbi和你一起走过的2020年
  18. 【iOS与EV3混合机器人编程系列之五】iOS_WiFi_EV3_Library 剖析之连接EV3
  19. 数字移动通信系统中广泛使用的两大类调制技术
  20. 用Scrapy爬取王者皮肤海报~

热门文章

  1. TXT杀手最终标题版本下载
  2. 关于mediaplay的程序
  3. 【最新精选】63款2022虎年贺岁新春海报素材合集、附带源文件、预览图
  4. 用SEO做定向流量让收入来找你
  5. 结构不只有眼前的CAD,还有python和秀发!
  6. 美图 HTTPS 优化探索与实践
  7. Hibernate 常用方法
  8. java实现日访问量和访问量的记录与显示
  9. 台式计算机防盗锁怎么安装,笔记本防盗锁,小编教你笔记本防盗锁怎么用
  10. zookeeper——分布式理论知识,助你更好地理解分布式系统