欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 九宫格的实现方法

程序员文章站 2023-11-23 22:39:16
1、xml代码:复制代码 代码如下:  

1、xml代码:

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
 <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_weight="1.0"
      android:background="@drawable/yellow"
      >
 <imageview android:id="@+id/imageview01"
            android:layout_width="100sp"
            android:layout_height="100sp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/a"></imageview>  
 <gridview
     android:id="@+id/gridview" 
     android:layout_width="wrap_content"   
     android:layout_height="wrap_content" 
     android:numcolumns="3" 
     android:verticalspacing="30dip" 
     android:horizontalspacing="10dip" 
     android:columnwidth="90dip"
     android:stretchmode="columnwidth"
     android:gravity="center"
     android:listselector="@drawable/c"
     >
 </gridview>
 </linearlayout>

   其中android:numcolumns="3"  代表九宫格的列数  auto_fit时为自动

2、实现代码

复制代码 代码如下:

public class mainactivity extends activity {

     /** called when the activity is first created. */

     @override
     protected void oncreate(bundle savedinstancestate) {
         // todo auto-generated method stub
         super.oncreate(savedinstancestate);
         // 设置屏幕没有标题
         this.requestwindowfeature(window.feature_no_title);
         // 去掉标题栏
         this.getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,
                 windowmanager.layoutparams.flag_fullscreen);
         setcontentview(r.layout.activity_main);

         gridview gridview = (gridview) findviewbyid(r.id.gridview);
         // 创建一个数组列表对象
         arraylist<hashmap<string, object>> lstimageitem = new arraylist<hashmap<string, object>>();

         /**
          * 为每个格子添加内容
          */
         for (int i = 1; i < 10; i++) {
             hashmap<string, object> map = new hashmap<string, object>();// 建立hashmap对象

             if (i == 1) {
                 map.put("itemimage", r.drawable.g11);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview1));
             }

             if (i == 2) {
                 map.put("itemimage", r.drawable.g12);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview2));
             }

             if (i == 3) {
                 map.put("itemimage", r.drawable.g13);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview3));
             }

             if (i == 4) {
                 map.put("itemimage", r.drawable.g14);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview4));
             }

             if (i == 5) {
                 map.put("itemimage", r.drawable.g15);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview5));
             }

             if (i == 6) {
                 map.put("itemimage", r.drawable.g16);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview6));
             }

             if (i == 7) {
                 map.put("itemimage", r.drawable.g17);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview7));
             }

             if (i == 8) {
                 map.put("itemimage", r.drawable.g18);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview8));
             }

             if (i == 9) {
                 map.put("itemimage", r.drawable.g19);
                 map.put("itemtext", getresources()
                         .getstring(r.string.gridview9));
             }

             lstimageitem.add(map);
         }

         /**
          * 为gridview建立simpleadapter适配器
          */
         // simpleadapter()中的五个参数分别是:第一个context,第二个数据资源,第三个每一个子项的布局文件,第四个每一个子项中的key数组
         // 第五个每一个子项中的value数组
         simpleadapter saimageitems = new simpleadapter(this, lstimageitem,
                 r.layout.grid_item, new string[] { "itemimage", "itemtext" },
                 new int[] { r.id.itemimage, r.id.itemtext });
         gridview.setadapter(saimageitems);// 添加适配器
         gridview.setonitemclicklistener(new itemclicklistener());// 为每一个子项设置监听
     }

     class itemclicklistener implements onitemclicklistener {
         @suppresswarnings("unchecked")
         public void onitemclick(adapterview<?> arg0,// the adapterview where the
                                                     // click happened
                 view arg1,// the view within the adapterview that was clicked
                 int arg2,// the position of the view in the adapter
                 long arg3// the row id of the item that was clicked
         ) {
             hashmap<string, object> item = (hashmap<string, object>) arg0
                     .getitematposition(arg2);
             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview1))) {
                 toast.maketext(mainactivity.this, r.string.gridview1,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview2))) {
                 toast.maketext(mainactivity.this, r.string.gridview2,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview3))) {
                 toast.maketext(mainactivity.this, r.string.gridview3,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview4))) {
                 toast.maketext(mainactivity.this, r.string.gridview4,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview5))) {
                 toast.maketext(mainactivity.this, r.string.gridview5,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview6))) {
                 toast.maketext(mainactivity.this, r.string.gridview6,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview7))) {
                 toast.maketext(mainactivity.this, r.string.gridview7,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview8))) {
                 toast.maketext(mainactivity.this, r.string.gridview8,
                         toast.length_long).show();
             }

             if (item.get("itemtext").equals(
                     getresources().getstring(r.string.gridview9))) {
                 toast.maketext(mainactivity.this, r.string.gridview9,
                         toast.length_long).show();
             }
         }
     }

 }

3、实现效果如图所示

Android 九宫格的实现方法