GirdView的一些属性:
android:numColumns="auto_fit" --------列数设置为自动
android:columnWidth="90dp",----------每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth"------缩放与列宽大小同步
android:verticalSpacing="10dp"----------垂直边距
android:horizontalSpacing="10dp"-------水平边距
1、准备数据源
2、新建适配器
3、加载适配器
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的,下面来个实例,
视图:
MainActivity.java
package cn.bgs.gridviews;
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.view.Menu;
import android.view.MenuItem;
import android.widget.GridView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
private GridView Grid;
// 图片封装为一个数组
private String strs[]={"电你一号","电你二号","电你三号","电你四号","电你五号","你六号","电你七号","电你八号"};
private int imgs[]={
R.drawable.ic_launcher,R.drawable.ic_launcher,
R.drawable.ic_launcher,R.drawable.ic_launcher,
R.drawable.ic_launcher,R.drawable.ic_launcher,
R.drawable.ic_launcher,R.drawable.ic_launcher};
private SimpleAdapter simple;
private List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData();
initView();
}
private void initView() {
Grid=(GridView) findViewById(R.id.Grid);
//新建适配器
String [] from ={"image","text"};
int [] to = {R.id.mTv,R.id.mTv};
simple = new SimpleAdapter(this, list, R.layout.griditem, from, to);
//配置适配器
Grid.setAdapter(simple);
}
// private void initList() {
// for (int i = 0; i <imgs.length; i++) {
// Map<String, Object> m=new HashMap<String, Object>();
// m.put("image", strs[i]);
// m.put("text", imgs[i]);
// list.add(m);
// }
// }
public List<Map<String, Object>> getData(){
//cion和iconName的长度是相同的,这里任选其一都可以
for(int i=0;i<imgs.length;i++){
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", imgs[i]);
map.put("text", strs[i]);
list.add(map);
}
return list;
}
}
activity_main.xml
<RelativeLayout 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"
tools:context="cn.bgs.gridviews.MainActivity" >
<GridView
android:id="@+id/Grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
</RelativeLayout>
griditem.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"
>
<ImageView
android:id="@+id/mImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:text="撒到总领"
android:id="@+id/mTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
看完我发的,是不是感觉很简单呢?