1. 程式人生 > >使用GridView和SimpleAdapter實現手機界面常見的九宮格

使用GridView和SimpleAdapter實現手機界面常見的九宮格

adapt height lns androi code 兩個 sha itme find

首先是兩個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">

    <GridView
        android:id="@+id/MyGridView
" android:layout_alignParentTop="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchMode="columnWidth" android:numColumns="3" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/ItemImageView" android:layout_width="wrap_content" android:layout_height="wrap_content
" android:paddingLeft="10dp" android:layout_gravity="center"/> <TextView android:id="@+id/ItemTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"/> </LinearLayout>

然後是Java實現程序:

 1 package com.example.zhoushasha.myapplication;
 2 
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.view.Window;
 7 import android.view.WindowManager;
 8 import android.widget.AdapterView;
 9 import android.widget.GridView;
10 import android.widget.SimpleAdapter;
11 import android.widget.Toast;
12 
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.List;
16 
17 public class MainActivity extends AppCompatActivity {
18     private GridView mGridView;
19 
20 
21 
22     private int[] imageRes = { R.drawable.tu1, R.drawable.tu2,
23             R.drawable.tu3,R.drawable.ty4,R.drawable.tu5,R.drawable.tu6,R.drawable.tu7,R.drawable.tu8,R.drawable.tu9 };
24 
25 
26 
27     private String[] itemName = { "圖1", "圖2", "圖3", "圖4", "圖5 ",
28 
29             "圖6", "圖7 ", "圖8", "圖9"  };
30 
31     @Override
32 
33     public void onCreate(Bundle savedInstanceState) {
34 
35         super.onCreate(savedInstanceState);
36         setContentView(R.layout.activity_main);
37 
38 
39 
40         mGridView = (GridView) findViewById(R.id.MyGridView);
41 
42         List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
43 
44         int length = itemName.length;
45 
46         for (int i = 0; i < length; i++) {
47 
48             HashMap<String, Object> map = new HashMap<String, Object>();
49 
50             map.put("ItemImageView", imageRes[i]);
51 
52             map.put("ItemTextView", itemName[i]);
53 
54             data.add(map);
55 
56         }
57 
58         //為itme.xml添加適配器
59 
60         SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this,
61 
62                 data, R.layout.item, new String[] { "ItemImageView","ItemTextView" },
63                 new int[] { R.id.ItemImageView,R.id.ItemTextView });
64 
65         mGridView.setAdapter(simpleAdapter);
66 
67         //為mGridView添加點擊事件監聽器
68 
69         mGridView.setOnItemClickListener(new GridViewItemOnClick());
70 
71     }
72 
73     //定義點擊事件監聽器
74 
75     public class GridViewItemOnClick implements AdapterView.OnItemClickListener {
76 
77         @Override
78 
79         public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
80 
81             Toast.makeText(getApplicationContext(), position + "",
82 
83                     Toast.LENGTH_SHORT).show();
84 
85         }
86 
87     }
88 
89 }

運行就可以實現功能

使用GridView和SimpleAdapter實現手機界面常見的九宮格