AndroidでGrid表示
AndroidでGrid表示するには
GridViewにデータを保持するAdapterを設定することで
画面スクロール可能なGrid形式のリストを表示できる
使い方によっては
ホーム画面のように、アイコンだけのUIを作るときにも使える
食べログのAndroidアプリの画面のようなかんじになる
カレンダーのように使うことも可能
GridViewは
グリッド状にリスト表示するためのViewで
画像viewerのように
データを升目のように並べて表示できる
これを行うには、まずレイアウトファイルでGridViewを設定
<GridView android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="4" android:verticalSpacing="10dp" android:horizontalSpacing="10dp"/>
android:numColumns=””
は、1行に表示するアイテムの数
つまり表示する画像やアイコンの数になる
android:verticalSpacing=””
は、アイテムどうしの幅、つまり画像やアイコンの縦の幅になる
同様に
android:horizontalSpacing=””
はアイコンどうしの縦幅になる
これで設定はできたので
Adapterの設定をJavaで行う
GridViewのインスタンスを取得し
データを設定したAdapterを設定する
GridView grid = (GridView)findViewById(R.id.grid); //Adapterの作成 ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,WEEK); //Adapterの設定 grid.setAdapter(adapter); //GridViewに表示する文字列 private static final String[] WEEK = new String[]{ "月","火","水","木","金","土","日" };
これで、カレンダーのように
GridViewへ曜日が表示される
GridViewに指定するAdapterは
ListViewと同じものを使える
GridViewは、ListViewと同じ抽象クラスを継承しているため
多くの面で共通の処理を実装できる
ただし、GridViewは複数行を表示するという特徴があるため
いくつかの注意点がある
GridViewはListViewよりも表示アイテムが多くなるため
パフォーマンスに気をつける必要がある
また、ListViewでは
項目を指定してスクロールできるけど
GridViewではできないため
スクロール位置の配置に注意する必要がある