`
修博龙泉
  • 浏览: 318000 次
  • 性别: 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

相关推荐

    Android 九宫格解锁demo

    这个“Android九宫格解锁demo”是针对微众银行的解锁界面进行的一种模仿实现,旨在帮助开发者理解如何创建类似的功能。 首先,我们要了解九宫格的基本构成。九宫格通常由3行3列的9个可点击的小方块组成,每个方块...

    Android 九宫格抽奖

    Android 九宫格抽奖 自定义view 可以根据后台返回的商品id设置商品曝光率,本地随机数随机抽奖

    Android九宫格源码

    这个“Android九宫格源码”是使用Eclipse IDE编写的,包含两个小型的Demo,旨在展示如何实现这样一个交互式的布局。源码结构简单,易于理解和学习,特别适合初学者或需要快速实现九宫格功能的开发者。 首先,我们要...

    android 九宫格密码解锁

    总之,九宫格密码解锁是Android平台上的一个重要功能,它的实现涉及到了Android图形绘制、事件处理、数据持久化等多个方面。掌握这一技术不仅有助于提升开发者的技能,也能为用户提供更便捷、个性化的解锁体验。对于...

    Android自定义九宫格抽奖控件

    "Android自定义九宫格抽奖控件"就是一个很好的实例,它解决了在实际业务中对抽奖界面的特殊需求,允许开发者灵活控制抽奖转盘的旋转次数、速度以及最终停留的位置。这种控件不仅能够提供更丰富的交互体验,还能适应...

    Android九宫格的实现

    下面将详细介绍如何在Android中实现一个九宫格。 1. **GridView的基本概念** GridView是Android提供的一个视图控件,它继承自AbsListView,用于显示二维的数据集。每个数据项会占据一个单元格,单元格的数量由...

    Android-Android图片选择预览九宫格图片控件拖拽排序九宫格图片控件

    本文将详细讲解如何实现一个Android图片选择、预览功能,并且介绍如何设计一个支持拖拽排序的九宫格图片控件。 首先,让我们关注“Android图片选择”这一知识点。在Android中,我们可以利用系统的`Intent`来调用...

    android九宫格游戏源码

    【Android九宫格游戏源码解析】 Android九宫格游戏是一款经典的移动平台小游戏,适合初学者用来学习Android应用开发的基本概念和技术。这个源码项目提供了一个很好的起点,可以帮助开发者了解如何在Android环境中...

    android九宫格选择照片

    标题“android九宫格选择照片”涉及到的是在Android平台上实现一个常见的用户界面功能,即九宫格图片选择器。这个功能通常用于应用中让用户能够从手机相册中选取多张图片,例如在社交应用或者个人资料设置中。下面将...

    android九宫格源码

    下面将详细介绍如何在Android中实现一个九宫格源码。 首先,我们需要了解`GridLayout`和`GridView`。`GridLayout`是Android的一种布局管理器,它可以将子视图均匀地分布在网格中,每个子视图占据相同大小的空间。而...

    android 九宫格 GridView

    在Android开发中,GridView是一种非常常见的控件,用于展示数据集,通常以网格的形式排列,非常适合用来实现九宫格布局。九宫格是用户界面设计中常见的一种布局方式,尤其在应用启动页、设置菜单或者功能选择界面中...

    android用GridView实现九宫格菜单

    在Android开发中,GridView是一种非常常用的布局控件,它能够以网格的形式展示数据,非常适合用来实现九宫格菜单。九宫格菜单通常用于应用程序的主界面,显示一系列图标和文字,用户点击图标即可进入相应的功能模块...

    Android 九宫格 滑屏

    综上所述,实现Android九宫格滑屏涉及到了布局设计、滑动效果、数据加载与绑定、动画效果、事件处理以及屏幕适配等多个方面。开发者需要结合具体需求,合理选择和组合这些技术,才能打造出用户体验优良的九宫格滑屏...

    android 九宫格滑动解锁例子 源码

    在Android开发中,九宫格滑动解锁是一种常见的用户界面元素,它为用户提供了一种安全且直观的设备解锁方式。这个源码实例是专门针对这一功能实现的,非常适合初学者来学习和理解Android编程中的触摸事件处理和自定义...

    android 九宫格

    总之,Android中的九宫格实现主要依赖于`GridView`组件和自定义的数据适配器。通过灵活地配置布局和适配器,我们可以实现各种定制化的九宫格效果。理解`GridView`的内部机制对于优化性能和提升用户体验至关重要。

    使用Android自定义控件实现滑动解锁九宫格

    在Android开发中,自定义控件能够满足特定的界面需求,比如实现滑动解锁九宫格功能。这个功能常见于一些应用中,如支付宝,它提供了安全且有趣的用户交互方式。下面我们将详细讨论如何实现这样一个自定义控件。 ...

    Android 九宫格UI布局的实现方法.rar

    一个初级的Android 九宫格UI布局的实现,演示了实现方法,并附带了例子的源代码。主要是向大家演示九宫格的实现过程和方法,将对应map的Key 、对应R的Id添加Item到网格中,面向android开发者新手,源码仅供参考。

    安卓键盘输入相关-一个Android九宫格实体按键输入法支持中文但不能联想输入.rar

    本资源“安卓键盘输入相关-一个Android九宫格实体按键输入法支持中文但不能联想输入.rar”提供了一个专为Android平台设计的九宫格实体按键输入法的源代码,它允许用户通过实体按键输入中文,但不包含联想输入功能。...

Global site tag (gtag.js) - Google Analytics