您的位置:首页 > 移动开发 > Android开发

Android实用笔记——使用GridView以表格的形式显示多张图片

2016-07-26 00:00 447 查看
1、编辑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:numColumns=""每一行显示多少列
android:horizontalSpacing=""两列之间的间距
android:verticalSpacing="" 两行之间的间距
-->

<GridView
android:layout_marginTop="10dp"
android:id="@+id/gridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
>
</GridView>

</LinearLayout>


2、添加编辑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:src="@drawable/ic_launcher"
android:id="@+id/image"
android:layout_width="60dp"
android:layout_height="60dp"
/>

<TextView
android:id="@+id/text"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text="文字"
/>

</LinearLayout>


3、修改AndroidManifest.xml中如下一行代码

android:theme="@android:style/Theme.Black.NoTitleBar" >


4、导入如下图片至res->drawable-hdpi文件夹下



5、修改MainActivity.java文件

package com.example.myandroidgridview;

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.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

//14、配置事件监听器
public class MainActivity extends Activity implements OnItemClickListener{
//1、创建GridView对象
private GridView gridView;

//6、声明数据源集合
private List<Map<String, Object>>dataList;

//8、把图片资源放到数组里、所有drawable里的图片id都相当于一个整型,所以用整形数组进行封装
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,};

//9、把图标名称也封装在数组里
private String[] iconName={"通讯录","日历","照相机","时钟","游戏",
"联系人","音乐","设置","短信","天气","浏览器","视频"};

//10、声明简单适配器
private SimpleAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

3ff0
//2、将适配器对象与布局文件进行绑定
gridView= (GridView) findViewById(R.id.gridView);

//3、具体步骤
//准备数据源
//新建适配器SimpleAdapter
//GridView加载适配器
//给GridView配置事件监听器OnItemClickListener

//7、新建数据源集合
dataList=new ArrayList<Map<String,Object>>();

//4、用写在外面的getData()函数来获取数据源
//getData();

//11、新建简单适配器SimpleAdapter(上下文,数据源,布局文件,Map键名,绑定数据视图id,);
adapter=new SimpleAdapter(this,getData(),R.layout.item,
new String[]{"image","text"},new int[]{R.id.image,R.id.text});

//12、加载适配器
gridView.setAdapter(adapter);
//16、加载监听器
gridView.setOnItemClickListener(this);
}

private List<Map<String,Object>> getData() {
// TODO Auto-generated method stub
//13、将数据源填充到list集合中
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);
}

//5、SimpleAdapter的数据源是一个特殊泛型的集合
return dataList;
}

//15、重写事件监听器的方法
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(this, "我是"+iconName[position], Toast.LENGTH_SHORT).show();
}

}


6、结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: