ソース
全体はここを参照。抑えておきたいポイントだけ説明する。
(拡張した)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使ったときのテンプレになってくれるはず。
配布
プロジェクトまるごとGitHubに上げてます。
参考サイト
android developer - Hello, GridView -公式が分かりやすい。