hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

GridViewを使ってみたよ

見やすいように表示するときに便利。
1

コーディング概要

基本的にはListViewなどと同じく、Adapterをsetして上げれば良い。

  1. Adapterを用意
  2. GridViewを用意
  3. GridViewにAdapterを設定

ソース

全体はここを参照。抑えておきたいポイントだけ説明する。

(拡張した)Adapterのインスタンス宣言。
ImageAdapter adapter = new ImageAdapter();
for (String path : mData) {    // mDataには画像pathが設定されてる。
    // dataをaddしていく。のちにAdapter内でgetするためのデータ。
    adapter.add(listDatas(path));
}
GridViewを作成してアダプターをセット
GridView gv = (GridView) findViewById(R.id.image_grid);
gv.setAdapter(adapter);

レイアウト

<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/image_grid"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
></GridView>

普段使わないプロパティが多く登場するので、大切な部分だけ説明します。

numColumns

横に並ばせるrow数。"auto_fit"は解像度に合った個数並べてくれる。入りきらないほど指定すると、columnWidthが無視され、画像が重なる。

verticalSpacing

rowの縦幅

horizontalSpacing

rowの横幅

columnWidth

rowとrowの間隔。指定しなければ広く開く。小さくし過ぎると画像が重なる。

蛇足

ついでに画像選択したら別Activityへ遷移し、選択された画像を表示して。OKボタンを押して戻るとToast表示するようにしてみた。
たぶんGridView使ったときのテンプレになってくれるはず。
23

配布

プロジェクトまるごとGitHubに上げてます。

参考サイト

android developer - Hello, GridView -
公式が分かりやすい。