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();
}
};
}
分享到:
相关推荐
Android九宫格的实现
android 九宫格的源码实现 非常好的资源
android的gridview 实现九宫格菜单
自己用android eclipse编写的九宫格源码,包括2个小的Demo,程序写得比较简单,添加了系统登录功能。
android 九宫格滑动解锁例子的源码,很好的实现了九宫格滑动解锁的功能,适合新手学习
一个初级的Android 九宫格UI布局的实现,演示了实现方法,并附带了例子的源代码。主要是向大家演示九宫格的实现过程和方法,将对应map的Key 、对应R的Id添加Item到网格中,面向android开发者新手,源码仅供参考。
android简单九宫格,gridview实现,简单易懂,适合初学者学习理解。
NULL 博文链接:https://iaiai.iteye.com/blog/1975224
Android常用九宫格锁屏案例,忘记出处了,自己调试解决编译错误后贡献出来
android九宫格解锁源码,自定义View实现,一般用于程序解锁开机解锁
Android九宫格显示多图或item,仿照QQ空间图片列表
基于九宫格算法实现的课表界面,伸缩性强,根据数据该表课表布局
利用SimpleAdapter实现的GridView(九宫格)布局
业务需要九宫格抽奖,但网上的资源都不适用,自己写了一个,可控制转圈数、速度、最后停放位置,可适用服务器配置资源,而不是仅仅用本地图片资源。现在分享给大家,需要的可以参考以下。
Android 九宫格 数独游戏,生成随机数字的源数组,随机数字从该数组中产生,生成随机数字,该数字是数组的下标,取数组num中该下标对应的数字为随机数字.游戏玩法: 通过点击棋盘中空白的位置并填入适当的数字,使得...
自定义的 九宫格手势密码 纯代码实现 简单易懂
RecyclerView实现九宫格,点击图片放大,再次点击消失。
纯代码实现余额宝九宫格解锁,工程是用Android Developer Tools (eclipse) 创建的,不是Android studio工程
使用java代码实现九宫格 动态代码实现左右滑动,类似美团首页顶部的九宫格轮播图的效果.