【 Android 】Grid View

Grid View顧名思義就是格子式的視圖,其實跟list view差不多意思,只是有時候想要呈現成格狀的樣式的時候就會使用gridview。

下列是比較常使用的方法,可以參考:
一、首先先在Main layout上建立一個grid view的標籤:
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview_type"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnWidth="120dp"
    android:gravity="center"
    android:horizontalSpacing="30dp"
    android:numColumns="3"
    android:stretchMode="columnWidth"
    android:verticalSpacing="30dp" >


</GridView>

ps:這裡有幾樣特性是gridview獨有的:
1. android:numColumns:表示每一橫列要展示的個數(若為auto_fit,似乎就是設為一行三個)
2. android:verticalSpacing:行跟行的間距
3. android:horizontalSpacing:列跟列的間距
4. android:columnWidth:每一格的寬度
5. android:stretchMode:格子拉伸模式
                       none:不要伸縮
                       spacingWidth:拉伸每列的間距
                       coumnWidth:拉伸每格
                       spacingWidthUnifomr:平均拉伸間距


二、再建立一個xml,作為單一項目的版面配置,這裡配置一張圖和文字
    <ImageView
        android:id="@+id/ItemImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" >
    </ImageView>

    <TextView
        android:id="@+id/ItemText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView01" >

    </TextView>

三、以上畫面都配置好了,接下來回到java上,首先跟listview 一樣先將資料塞入key當中
private List<HashMap<String, Object>> getData() {
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
  for (int i = 0; i < imgs.length; i++) {
   HashMap<String, Object> d0 = new HashMap<String, Object>();
d0.put("title", texts[i]);
d0.put("img", imgs[i]);
data.add(d0);
  }
  return data;
}

四、 再來就可以設定adapter去轉換
gv = (GridView) findViewById(R.id.gridview_type);
mData = getData();
gv.setAdapter(new SimpleAdapter(this, mData, R.layout.item,// night_item的XML实现

// 动态数组与ImageItem对应的子项
new String[] { "img", "title" },

// ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] { R.id.ItemImage, R.id.ItemText }));
gv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(), "Your choice is "+texts[position],    
            Toast.LENGTH_SHORT).show(); 
   }
});

以上是grid view的基本使用方式。

留言

這個網誌中的熱門文章

【 Android 】控制ImageView大小&位置

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮