`
修博龙泉
  • 浏览: 313062 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
android九宫格实现,开始以为很复杂,其实只要知道了如何布局就很简单了。
先分析一下原理:
1:我们需要先定义一个主布局文件,宽度和列数用自适应的
     android:numColumns="auto_fit"
     android:stretchMode="columnWidth"
2:在定义一个子布局,子布局主要是控制九宫格每格的布局,例子是图文垂直布局。
3:在代码里面用SimpleAdapter将数据复制给布局文件,循环布局,就实现了九宫格
直接上代码:android九宫格主布局文件main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/gridView1"
     android:layout_width="fill_parent"
     android:numColumns="auto_fit"
     android:stretchMode="columnWidth" 
     android:columnWidth="75dp"
     android:gravity="center"
     android:layout_height="fill_parent">
</GridView>

android九宫格子布局文件layout_gridview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/relativeLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android">
        <ImageView android:id="@+id/imageView_ItemImage" 
         android:layout_width="wrap_content"
         android:src="@drawable/icon" 
         android:layout_height="wrap_content" 
         android:layout_centerHorizontal="true"
         >
         </ImageView>
        <TextView android:id="@+id/textView_ItemText" 
        android:text="TextView" 
        android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:layout_below="@+id/imageView_ItemImage"
         android:layout_centerHorizontal="true"
          >
          </TextView>
    </RelativeLayout>

android九宫格代码文件:
package com.mixian.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
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;

public class GridLayoutActivity extends Activity {
	/** Called when the activity is first created. */
	private GridView _gridView1;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		_gridView1 = (GridView) findViewById(R.id.gridView1);
		List<HashMap<String, Object>> lst = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < 12; i++) {
			HashMap<String, Object> map = new HashMap<String, Object>();
			map.put("itemImage", R.drawable.icon);
			map.put("itemText", "item" + i);
			lst.add(map);
		}

		SimpleAdapter adpter = new SimpleAdapter(this, lst,
				R.layout.layout_gridview_item, // 指定 子项的布局文件的ID
				new String[] { "itemImage", "itemText" }, // 指定 数据的列
				new int[] { R.id.imageView_ItemImage, R.id.textView_ItemText });// 指定数据的列对应到的
																				// 绑定的目标控件
		_gridView1.setAdapter(adpter);
		_gridView1.setOnItemClickListener(onclickcistener);
	}

	private OnItemClickListener onclickcistener = new OnItemClickListener() {

		public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
				long arg3) {
			Object obj = _gridView1.getAdapter().getItem(arg2);
			HashMap<String, Object> map = (HashMap<String, Object>) obj;
			String str = (String) map.get("itemText");

			Toast.makeText(getApplicationContext(), "" + str, 0).show();

		}

	};

}
1
0
分享到:
评论
4 楼 atgoingguoat 2014-03-27  
R.drawable.icon
是LOG图
3 楼 atgoingguoat 2014-02-20  

android:src="@drawable/icon"

R.drawable.icon

没有。
2 楼 bei-jin-520 2012-08-23  
color]sdfsdfsdf
1 楼 bei-jin-520 2012-08-23  
[color=white][/color]sdfsdfsdf

相关推荐

Global site tag (gtag.js) - Google Analytics