ListView/GridView/Gallery簡単な紹介¶
ListView¶
画面構成¶
listview.xml
"@+id/listview_id"でプログラムからアクセスするIDを定義します。
リストビューをどれくらいの大きさで配置するかを指定します。

listitem.xml
ListViewは, その内部にレイアウトを持つので、ListViewのレイアウトを定義します。

ListViewの特徴として1行ずつの制御ができるというのがある。なので1行分layoutを分離して記述することが効率的だな。
このlayoutはListViewが張り付いているlayoutとは別物、さらに行ごとにも別物として管理される。
データ操作用のAdpterの実装¶
ビューと表示するデータのやりとりにAdapter(アダプタ)を通しています。
異なる規格や形状の差異を吸収する中間装置(処理)の総称です。
SimpleCursirAdapterはデータを加工してListViewを表示する形にして渡します。

setAdapterの内部ではデータごとにgetViewが呼び出されて先ほどのパラメータのマッピングが行われる仕掛けになっている。
常用Adapterの機能として下記を提供する
- ArrayAdapter
- SimpleAdapter
- SimpleCursorAdapter
事件の追加¶
ListViewの重要な事件として下記を提供する
- OnClickListener
- OnFocusChangeListener
- OnItemClickListener
- OnItemLongClickListener
- OnItemSelectedListener
- OnKeyListener
- OnLongClickListener
- OnScrollListener
- OnTouchListener
GridView¶
GridViewは2次元のスクロールできるグリッドに項目を表示するViewGroup です。
グリッドに表示する項目はAdapter を通して自動的にレイアウトに挿入さます。
GridViewの使用の方とListViewの似ていること
画面構成¶

GridViewの主な属性
| {background:#CCCCCC}.属性 | {background:#CCCCCC}.説明 |
|---|---|
| columnWidth | 列の幅 |
| numColumns | 列の数 |
| verticalSpacing | 垂直方向のグリッド間のスペース |
| horizontalSpacing | 水平方向のグリッド間のスペース |
データの操作¶
Gridに表示するAdapterをBaseAdapterを継承してGridAdapter.javaを作成する。

最初に、BaseAdapterから継承したいくつかの必須メソッドを実装します。コンストラクタとgetCount()については見たままです。通常、getItem(int)メソッドは、そのアダプタの指定された位置に対応する。実際のオブジェクトを返すべきですが、この例では無視します。同様に、getItemId(int)メソッドもその項目の行IDを返すべきですが、ここでは必要としません。
最初の必要とされるメソッドはgetView()です。
このメソッドが呼ばれるとき、Viewをパラメータとして渡します。
getView()メソッド内の終わりで、positionで指定した数値をインデックス値として使ってiconList配列から画像を選択し、その画像をImageViewに画像リソースを設定するメソッドにパラメータとして渡します。
事件¶
GridViewの重要な事件として下記を提供する
- OnClickListener
- OnFocusChangeListener
- OnItemClickListener
- OnItemLongClickListener
- OnItemSelectedListener
- OnKeyListener
- OnLongClickListener
- OnScrollListener
- OnTouchListener
Gallery¶
Galleryクラスはスピナと同じく予め登録されたデータを切り替えて表示していくビューですが、現在選択されているデータの他に前後のデータの一部を左右に配置します。
Galleryは最終的にViewとして表示するため、どんなものでもViewとして表現できればGalleryとして成立します。
デモアプリでは見栄えが良いため、画像でギャラリーを作成しています。
画面構成¶

デモアプリでは、画像のためのウィジェット、ImageViewとImageSwitcherを使用しています。
ここはImageSwitcherを使います。ImageSwitcherは指定されたイメージを大きく表示するために使用しています。ImageSwitcherにはフェイドイン・フェイドアウトのエフェクトを指定しています。
画面キャプチャでは、フェイドイン・フェイドアウトが伝わりにくいので、動作させて実際に見ていただければと思います。
データの操作¶
Galleryにイメージを表示するAdapterをBaseAdapterを継承してImageAdapter.javaを作成する。
ImageAdapterとListViewの似ていること

事件の追加¶
GalleryのonItemSelected実装した以下のクラスを追加して、画像選択時のイベントを拾えるようにします。

画像をタップしたら元のImageSwitcherに戻るようにします。

Galleryの重要な事件として下記を提供する
- OnClickListener
- OnFocusChangeListener
- OnItemClickListener
- OnItemLongClickListener
- OnItemSelectedListener
- OnKeyListener
- OnLongClickListener
- OnScrollListener
- OnTouchListener
以上、今度の学習のおおよその内容です。今後、APIを使う場合は、深い研究をします。
by 許燕