[Android] GridView 作り方使い方

Android7

ギャラリーのように画像を格子状に並べるには、GridViewを使います。作り方は ListView に似ています。画像はdrawableに入れることもできますが、今回はassetsに入れて取り出してみたいと思います。

 
gridview_1

Android Studio 2.2.2
Android 7.1.1

 

sponsored link

GridView

 
作り方はListViewと同じように作成していきますが、画像は assets から取り出します。画像のファイル名を読出し、そのパスをArrayListに登録しGrid表示するという手順です。

  1. String 要素数が増減してもいいように ArrayList<String> で設定
    • 要素数が決まっているのであれば配列でも可能です
  2. GridView のインスタンス生成
  3. BaseAdapter を継承した GridAdapter クラスのインスタンス生成
  4. 画像を取り出すメソッドを記述
  5. GridAdapter に convertView を使って View の再利用
  6. 画像をデコードして表示

 
MainActivity.java

 
つづき

assets に画像を入れそれを内部保存領域 /data/data/ に格納するようにしました。

  • 画像が決まっていて変更ないのであればassetsから毎回呼び出す方法でも可能です。
  • 今回はGridViewのリストが変更されること(削除や順番変更)を考えて内部メモリーに一旦格納するというやり方です。
  • また一方、ギャラリーのような要素がどんどん追加されていくような場合では、外部メモリ―領域に保存するほうがいいでしょう。

assets への画像保存方法はこちらを参照してください ImageView 画像の表示: assets
画像の読出しは
getResources().getAssets().open
を使います。
 

 
assetsからBuuferを使って読み込んだ画像データを、内部メモリに保存していきます
 

 
つづき
BaseAdapterを継承したカスタムのadapterを作成します。
 

 
メインのレイアウト
activity_main.xml

 
GridVieのレイアウト
grid_items.xml

 
Android と iPhone どちらがいいかと聞かれますが
この GridView のような Collection では
個人的には iPhone のアプリの方が作り易かったです
[iPhone] UICollectionView でGrid表示
Android ではこの後、怒濤のメモリ管理を自分でやらないといけないので…
 
 
参考記事:
GridView で標準アイコンリストの作成: セルタップの挙動もあります
 
Reference:
Grid View