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は最終的に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 許燕