Android_gridVIew
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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.gridviewdemo.MainActivity" > <!-- GridView是可滚动的网格,一般用来显示多张图片。
android:horizontalSpacing="10dp"两列之间的间距是10dp
android:numColumns="auto_fit"自动分配(安卓自提供),也可些一行显示几个
android:verticalSpacing="10dp" 两行之间的间距是10dp
android:stretchMode="spacingWidth"缩放与列宽大小同步
-->
<GridView
android:id="@+id/gridView_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:verticalSpacing="10dp" >
</GridView>
<!-- 运行效果中,各列之间的间距大于10dp,是因为将列数设为了3行,因此会平均分布 -->
</LinearLayout>
item.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/image"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/address_book"
/> <TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:layout_marginTop="5dp"
android:text="名字"/> </LinearLayout>
源代码:
package com.example.gridviewdemo; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
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; /*
* GridView:以以网格形式显示页面
* 创建GridView的步骤:
* 1.准备数据源
* 2.新建适配器(SimpleAdapter)
* 3、GridView加载适配器
* 4.Gridview配置事件监听器(OnItemClickListener)
*/
public class MainActivity extends Activity implements OnItemClickListener {
private GridView gridView;
private SimpleAdapter adapter;
private List<Map<String, Object>> list;
private String[] iconNames; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView_1);
list = new ArrayList<Map<String, Object>>();
adapter = new SimpleAdapter(this, getData(), R.layout.item,
new String[] { "图片", "文字" },
new int[] { R.id.image, R.id.text });
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(this);//设置监听器
} private List<Map<String, Object>> getData() {
iconNames = new String[] { "联系人", "日历", "照相机", "时钟", "游戏", "短信", "铃声", "设置",
"语音", "天气", "浏览器", "YouTube" };
int[] drawable = { 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 };
for (int i = 0; i < iconNames.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("图片", drawable[i]);
map.put("文字", iconNames[i]);
list.add(map);
} return list;
} @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) { Toast.makeText(this,iconNames[position], Toast.LENGTH_SHORT).show();
Log.i("Toast", iconNames[position]);
}
}
Android_gridVIew的更多相关文章
- Android开发10.3:UI组件GridView网格视图
GridView(网格视图) 概述 GridView用于在界面上按行.列分布的方式来显示多个组件 GridView和ListView有共同的父类 : AbsListView ...
随机推荐
- HDU 3085 Nightmare Ⅱ 双向BFS
题意:很好理解,然后注意几点,男的可以一秒走三步,也就是三步以内的都可以,鬼可以穿墙,但是人不可以,鬼是一次走两步 分析:我刚开始男女,鬼BFS三遍,然后最后处理答案,严重超时,然后上网看题解,发现是 ...
- ASP.NET Web API 如何通过程序控制返回xml还是json
雖然 ASP.NET Web API 內建支援 JSON 與 XML 兩種輸出格式,並依據瀏覽器端送出的 Accept 標頭自動決定回應的內容格式,不過有時候我們的確也需要讓程式來控制要回應哪種格式, ...
- 【mongodb 学习一】环境搭建之 mac 下连接 mongodb 的UI 客户端
记录下 mongodb 的学习 懒得自己达 mongodb 的服务器了 虽然一句命令就能搞定了 brew install mongodb 可是考虑到以后的应用还是放在网上的,就直接用现成的服务吧 下载 ...
- <转>SpringMVC与Struts2 比较总结
原链接:http://blog.csdn.net/chenleixing/article/details/44570681 个人整理: 1.级别不同:SpringMVC :方法 Struts是 类级 ...
- 【原】Storm基本概念
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Topologies Streams Spouts Bolts Stream groupings Reli ...
- python错误收集
Installing 'flask'You are using pip version 6.1.1, however version 7.1.2 is available.You should con ...
- 【原创】tcp协议那块一些点(想到了再加)
1.3次握手 4次握手 2.那张状态图,FIN_WAIT主动关闭方,CLOSE_WAIT被动关闭方 主动关闭方发出FIN后进入FIN_WAIT,FIN_WAIT方收到了ACK和FIN,发出了ACK,则 ...
- 【tyvj1952】easy
AK大神又AK了!!! orzorzorz 题意: 给出一个字符串由'x'.'o'.'?' '?'有一半的几率为'x' 一半几率为'o' 得分为所有连续的'o'的个数的平方和 如ooxooo 得分为2 ...
- Java HashMap 源码解析
今天正式开始分析具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 签名(signature) public class HashMap<K,V> extends Abstract ...
- Java List 用法代码分析 非常详细
Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3 ...