java 代码例如以下(简单的知识点我会以凝视的形式解说):
package com.gc.gridviewdemo;
/**
* @author Android将军
*/
/**
* 知识点解说:
* 1、GridView 用于在界面上按行、列分布的方式来显示多个组件。
* GridView和ListView有共同的父类:AbsListView,因此GridView
* 和ListView具有非常高的类似性,它们都是列表项。
* GridView与ListView的唯一差别在于:ListView仅仅显示一列。而GridView
* 能够显示多列。从这个角度来看,ListView相当于一种特殊的GridView,
* 假设让GridView仅仅显示一列。那么该GridView就变成了Listview。
* 与ListView类似的是,GridView也须要通过Adapter来提供显示的数据
* 2、GridView经常使用的XML属性:
* android:columnWidth------设置列的宽度
* android:numColumns-------设置列数
* android:horizontalSpacing----设置各元素之间的水平间距
* android:verticalSpacing----设置各元素之间的垂直间距
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter; public class MainActivity extends Activity {
private GridView grid;
private ImageView imageView;
int[] imageIds=new int[]{R.drawable.addresslist1,R.drawable.conference2,R.drawable.daiban3
,R.drawable.email4,R.drawable.file5,R.drawable.infrom6,R.drawable.organization7,R.drawable.publicfile8
,R.drawable.request9,R.drawable.sign10,R.drawable.task11,R.drawable.work12};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个List对象,List对象的元素是Map
List<Map<String,Object>> listItems=new ArrayList<Map<String,Object>>();
for(int i=0;i<imageIds.length;i++)
{
Map<String, Object> listItem=new HashMap<String,Object>();
listItem.put("image", imageIds[i]);
listItems.add(listItem);
}
//获取显示图片的ImageView
imageView=(ImageView)findViewById(R.id.imageView);
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter=new SimpleAdapter(this, listItems, R.layout.cell, new String[]{"image"}, new int[]{R.id.image1}); grid=(GridView)findViewById(R.id.grid01);
//为GridView设置Adapter
grid.setAdapter(simpleAdapter);
//加入列表项被选中的监听器
grid.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<? > parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//显示当前被选中的图片
imageView.setImageResource(imageIds[position]);
} @Override
public void onNothingSelected(AdapterView<? > parent) {
// TODO Auto-generated method stub }
});
//加入列表项被单击的监听器
grid.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<? > parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//显示被单击的图片
imageView.setImageResource(imageIds[position]);
}
}); } }

xml布局文件的代码例如以下:

activity_main.xml
<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"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
> <!-- 定义一个GridView组件 -->
<GridView
android:id="@+id/grid01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="1pt"
android:verticalSpacing="1pt"
android:numColumns="4"
android:gravity="center"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_gravity="center_horizontal"
/> </LinearLayout>

cell.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" >
<ImageView
android:id="@+id/image1"
android:layout_width="60dp"
android:layout_height="60dp"
/> </LinearLayout>

执行效果截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5kcm9pZF9qaWFuZ2p1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25342001

AndroidUI的组成部分GridView的更多相关文章

  1. AndroidUI的组成部分ProgressBar

    package com.gc.progressbar; /* * 1.ProgressBar组件也是一组重要的组件,ProgressBar本身代表了进度条组件, * 它还派生了两个经常使用的组件:Se ...

  2. AndroidUI的组成部分RoomButton

    <!-- 知识点汇总: 1.Button与ImageButton的差别在于,Button生成的button上显示文字 而ImageButton上则显示图片.须要指出的是:为ImageButton ...

  3. Android--UI之GridView

    前言 这篇博客介绍一下Android平台下,GridView控件的开发.针对GridView控件的一些常用属性.方法,以及注意事项进行讲解,最后将以一个Demo展示GridView控件的使用. Gri ...

  4. Android 高逼格纯代码实现类似微信钱包带分割线的GridView

    前言    原文地址:http://blog.csdn.net/sk719887916/article/details/40348837: Tamic 通过上两篇关于自定view的文章,在自定义vie ...

  5. AndroidUI组件之ImageSwitcher

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gc_gongchao/article/details/25594669 今天继续AndroidUI组 ...

  6. Android GridView 通过seletor 设置状态和默认状态

    Android中可以通过selector控制GridView Item 的状态,而省去使用代码控制 GridView View Selector Xml文件 <?xml version=&quo ...

  7. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  8. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  9. Android listview和gridview以及view的区别

    GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...

随机推荐

  1. 网络编程Socket之TCP之close/shutdown具体解释(续)

    接着上一篇网络编程Socket之TCP之close/shutdown具体解释 如今我们看看对于不同情况的close的返回情况和可能遇到的一些问题: 1.默认操作的close 说明:我们已经知道writ ...

  2. ThinkPhp学习11

    原文:ThinkPhp学习11 一.模板的使用        (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...

  3. Spring MVC+JSP实现三级联动

    jsp代码 <script type="text/javascript"> $(function() { initProvinces(); }); /** * 获取省列 ...

  4. LCS小结(O(∩_∩)O~吽吽)

    LCS!~如果你在百度上搜这个的话会出来”英雄联盟冠军联赛”,orz..但是今天要讲的LCS是最长公共子序列 ,"Longest Common Subsequence "not&q ...

  5. Go的String转码包

    https://github.com/qiniu/iconv https://github.com/djimenez/iconv-go 这是与go不相干的转码包:https://github.com/ ...

  6. java thread reuse(good)

    I have always read that creating threads is expensive. I also know that you cannot rerun a thread. I ...

  7. POJ 3267-The Cow Lexicon(DP)

    The Cow Lexicon Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8252   Accepted: 3888 D ...

  8. 散文说python半篇——景观三元论与盖茨比的对话

    今天, 天气晴朗,风和日丽: 我事实上在说谎-- 爱说谎事实上是我的天性 上个礼拜四我就用景观三元论说了非常多谎话.然后一头大象自己上吊了. 了不起的大象啊,盖茨比也要从坟墓里爬出来了吧, 陈年旧事, ...

  9. hdu2125(数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2125 题意:N×M的网格其中有一条边坏掉了,问从起点到终点的放法数. 分析:数学公式 如果没有坏边的话 ...

  10. 第一个Python程序的Hello Python,竟然有问题

    print 'hello python' 运行时显示:SyntaxError: invalid syntax 解决办法: 这应该是版本的问题,Python2的话直接就可以输出,但是到了Python3需 ...