九宫格普遍使用在各种各样的UI设计中,这里讲解在Android中怎么实现九宫格的效果。
首先,九宫格每格就是一个GridView
<GridView
android:id="@+id/GridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="3"
android:horizontalSpacing="20dp"
android:verticalSpacing="20dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
></GridView>
在Activity中,我们就要对每个GridView进行相应的处理
//九宫格数据的初始化
private void initGridView(){
GridView gridView = (GridView) findViewById(R.id.GridView);
ArrayList<HashMap<String, Object>> menulist = new ArrayList<HashMap<String,Object>>();
for(int i=0;i<drawable.length;i++){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", drawable[i]);
map.put("ItemText",menuItemText[i]);
menulist.add(map);
}
SimpleAdapter saMenuItem =
new SimpleAdapter(
this,menulist,R.layout.home_menuitem,
new String[]{"ItemImage","ItemText"},
new int[]{R.id.ItemImage,R.id.ItemText});
gridView.setAdapter(saMenuItem);
gridView.setOnItemClickListener(new GridViewOnClick());
}
home_menuitem.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageView
android:layout_width="fill_parent"
android:id="@+id/ItemImage"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ItemImage"
android:id="@+id/ItemText"
android:layout_centerHorizontal="true"
android:textSize="16sp"
/>
</RelativeLayout>