AndroidUI的组成部分GridView
- 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的更多相关文章
- AndroidUI的组成部分ProgressBar
package com.gc.progressbar; /* * 1.ProgressBar组件也是一组重要的组件,ProgressBar本身代表了进度条组件, * 它还派生了两个经常使用的组件:Se ...
- AndroidUI的组成部分RoomButton
<!-- 知识点汇总: 1.Button与ImageButton的差别在于,Button生成的button上显示文字 而ImageButton上则显示图片.须要指出的是:为ImageButton ...
- Android--UI之GridView
前言 这篇博客介绍一下Android平台下,GridView控件的开发.针对GridView控件的一些常用属性.方法,以及注意事项进行讲解,最后将以一个Demo展示GridView控件的使用. Gri ...
- Android 高逼格纯代码实现类似微信钱包带分割线的GridView
前言 原文地址:http://blog.csdn.net/sk719887916/article/details/40348837: Tamic 通过上两篇关于自定view的文章,在自定义vie ...
- AndroidUI组件之ImageSwitcher
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gc_gongchao/article/details/25594669 今天继续AndroidUI组 ...
- Android GridView 通过seletor 设置状态和默认状态
Android中可以通过selector控制GridView Item 的状态,而省去使用代码控制 GridView View Selector Xml文件 <?xml version=&quo ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能
在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...
- Android listview和gridview以及view的区别
GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...
随机推荐
- Microsoft2013校园招聘笔试题及解答
继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently store the book orders ...
- Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good
引言 接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的:对于服务端的类来说,如果它想实现某种服务,实现与该服务相 ...
- ThinkPhp学习06
原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php <?php class UserAction extends Action{ pu ...
- SilkTest Q&A 2
Q11:SilkTest中有没有计算web页面上单词数量的函数? A11:你可以使用Clipboard函数.使用Ctrl+a和Ctrl+c,然后解析string的list. Q12:silktest的 ...
- 设置Mysql的连接超时参数
在Mysql的默认设置中,如果一个数据库连接超过8小时没有使用(闲置8小时,即 28800s),mysql server将主动断开这条连接,后续在该连接上进行的查询操作都将失败,将 出现:e ...
- WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况
我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案 ...
- [Cocos2d-x]解决Android平台ndk-build时不自动删除外部库
参考链接: http://blog.chinaunix.net/uid-26009923-id-3430612.html http://hi.baidu.com/hpyfei/item/52a2b21 ...
- 2013 吉林通化邀请赛 Tutor 有点坑的水题
计算12个数的和的平均数.四舍五入,不能有后导0. 我的做法是,将答案算出后,乘以1000,然后看个位是否大于等于5,判断是否要进位…… #include<iostream> #inclu ...
- Java 泛型具体解释
在Java SE1.5中.添加了一个新的特性:泛型(日本语中的总称型).何谓泛型呢?通俗的说.就是泛泛的指定对象所操作的类型.而不像常规方式一样使用某种固定的类型去指定. 泛型的本质就是将所操作的数据 ...
- POJ 1122 FDNY to the Rescue!
给出某些交叉点的距离,-1 表示无法到达. 然后给出火灾发生点 和 附近的消防局位置. 排列消防局 的 时间 与路径. 反向建图,以火灾出发点为起点做一次SPFA. #include<cstd ...