Android 九宮格的實現方法

來源:互聯網
上載者:User

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、實現效果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.