【 Android 】Grid View
Grid View顧名思義就是格子式的視圖,其實跟list view差不多意思,只是有時候想要呈現成格狀的樣式的時候就會使用gridview。
下列是比較常使用的方法,可以參考:
一、首先先在Main layout上建立一個grid view的標籤:
ps:這裡有幾樣特性是gridview獨有的:
1. android:numColumns:表示每一橫列要展示的個數(若為auto_fit,似乎就是設為一行三個)
2. android:verticalSpacing:行跟行的間距
3. android:horizontalSpacing:列跟列的間距
4. android:columnWidth:每一格的寬度
5. android:stretchMode:格子拉伸模式
none:不要伸縮
spacingWidth:拉伸每列的間距
coumnWidth:拉伸每格
spacingWidthUnifomr:平均拉伸間距
二、再建立一個xml,作為單一項目的版面配置,這裡配置一張圖和文字
下列是比較常使用的方法,可以參考:
一、首先先在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>
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的基本使用方式。
留言
張貼留言