GridView用于在界面上按行、列分布的方式来显示多个组件(而ListView只是以按行的方式)

课程目标
 学会使用GridView制作二维布局界面(行、列分布)
 数据源(集合) --> 适配器(SimpleAdapter) --> 视图界面(GridView)
实现一种用GridView实现手机桌面的效果。
需要新建一个Item样式文件item.xml,是一个LinearLayout,包含一张图片和一段文字。
然后配置simpleAdapter,GridView设置SimpleAdapter。
GridView比较重要的三个属性:
android:numColumns 每一行显示多少列
android:horizontalSpacing 两列之间的间距
android:verticalSpacing  两行之间的间距
android:numColumns="auto_fit" 设置每一行的列数自适应
需要在AndroidManifest.xml中设置application的Theme
android:theme="@android:style/Theme.Black.NoTitleBar" >
然后就设置完了布局,接下来实现事件监听器。
onItemClick()函数的position参数会记录Item在GridView中的位置(Id)。
实现了一个仿桌面的GridView,点击的时候会显示名字。

package com.example.gridview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast; public class MainActivity extends FragmentActivity implements OnItemClickListener { private GridView gridView;
private List<Map<String, Object>> dataList;
private int[] icon = { R.drawable.address_book, R.drawable.calendar, R.drawable.camera,
R.drawable.clock, R.drawable.games_control, R.drawable.messenger,
R.drawable.ringtone, R.drawable.settings, R.drawable.speech_balloon,
R.drawable.weather, R.drawable.world, R.drawable.youtube };
private String[] iconName = { "通讯录", "日历", "照相机", "时钟", "游戏", "短信",
"铃声", "设置", "语音", "天气", "浏览器", "视频" };
private SimpleAdapter simpleAdapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.gridView1);
dataList = new ArrayList<Map<String, Object>>();
getData();
simpleAdapter = new SimpleAdapter(this, dataList, R.layout.item, new String[] { "image", "text" }, new int[] { R.id.imageView1, R.id.textView1 });
gridView.setAdapter(simpleAdapter);
gridView.setOnItemClickListener(this);
} private void getData() {
for (int i = 0; i < icon.length; i ++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", icon[i]);
map.put("text", iconName[i]);
dataList.add(map);
}
} @Override
public void onItemClick(AdapterView<?> parent, View arg1, int position, long id) {
Toast.makeText(this, "我是" + iconName[position], Toast.LENGTH_SHORT).show();
}
}

MainActivity.java

<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"
> <GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
>
</GridView> </LinearLayout>

activity_main.xml

<?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:gravity="center"
android:background="#000000"
> <ImageView
android:id="@+id/imageView1"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_launcher" /> <TextView
android:layout_marginTop="5dp"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:text="文字"
/> </LinearLayout>

item.xml

效果:

Android 使用GridView以表格的形式显示多张图片的更多相关文章

  1. 将从数据库中获取的数据 ,以HTML表格的形式显示

    1.HTML页面 <body> <form id="form1" runat="server"> <div id="di ...

  2. 通过JSTL用表格的形式显示

    <%@ page language="java" import="java.util.*, cn.hncu.domain.*" pageEncoding= ...

  3. 采用jsp用表格的形式显示

    <%@page import="cn.hncu.domain.*"%><%@ page language="java" import=&quo ...

  4. 控制台程序读取WIKI形式的TXT文件并一表格的形式显示在Word中

    'Imports System.Collections.Generic 'Imports System.Text 'Imports System.IO 'Imports office = Micros ...

  5. Android入门之GridView(表格控件)

    GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串.在这里我们要实现一个图标下方有文字的效果. 1.首先我们应自定义布局文件image_text.xml.代码如下: &l ...

  6. 利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

    登录界面 <body><form action="login1.php" method="post"><div>用户名:&l ...

  7. Android Studio gridview 控件使用自定义Adapter, 九宫格items自适应全屏显示

    先看效果图,类似于支付宝首页的效果.由于九宫格显示的帖子网上已经很多,但是像这样九宫格全屏显示的例子还不是太多.本实例的需求是九宫格全屏显示,每个子view的高度是根据全屏高度三等分之后自适应高度,每 ...

  8. 从头学起android&lt;GridView网格视图.二十八.&gt;

    GridView基于组件的网络格所有的形式的组分的,例如:当制作专辑,所有的图片将在相同的尺寸在不同的显示格在孩子,是否能够依靠这个组件完成.此组件的继承结构参见例如下面: java.lang.Obj ...

  9. Android笔记(十) Android中的布局——表格布局

    TableLayout运行我们使用表格的方式来排列控件,它的本质依然是线性布局.表格布局采用行.列的形式来管理控件,TableLayout并不需要明确的声明包含多少行多少列,而是通过添加TableRo ...

随机推荐

  1. pionter指针小结

    第七章.指针和函数的关系 可以把一个指针声明成为一个指向函数的指针. intfun1(char*,int); int(*pfun1)(char*,int); pfun1=fun1; .... .... ...

  2. 使用 LocalReport 对象进行打印

    添加引用   从“项目”菜单中,选择“添加引用”.将显示“添加引用”对话框. 从“.NET”选项卡上显示的列表框中,选择 Winforms 和 Drawing 组件. 添加代码 应打开 Program ...

  3. JS地毯式学习四

    1  窗口的位置 用来确定和修改 window 对象位置的属性和方法有很多. IE . Safari . Opera 和 Chrome都提供了 screenLeft 和 screenTop 属性,分别 ...

  4. object not serializable (class: org.apache.kafka.clients.consumer.ConsumerRecord)

    3. object not serializable (class: org.apache.kafka.clients.consumer.ConsumerRecord)   val stream = ...

  5. Android——ImageView的scaleType属性与adjustViewBounds属性 (转)一

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  6. [转]getHibernateTemplate出现的所有find方法的总结

    一.find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有Use ...

  7. java- 综合实例-增删查改查,删除多项,分页,令牌机制

    重点内容:分页.令牌机制(重定向下防止重复提交).使用c3p0连接数据库(以及数据库连接类) 项目结构: 类: 项目展示: 数据库: /* SQLyog Ultimate v12.09 (64 bit ...

  8. 试验如何通过审核Google AdSense——我跟谷歌ads杠上啦

    http://www.hankcs.com/appos/webhost/apply-google-ads.html —————————————————————————————————————————— ...

  9. 数据库之“on”“where”区别

    数据库在通过连接两张或者多张表返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户 在使用inner join(内连接)没有区别,但是 在使用left jion时,on和where条件的 ...

  10. selenium测试(Java)--学习总结