Android入門【第5回:SDカードから画像を読み込む】(ついでにGridViewで表示)
さて、前回は画像を切り替えられるようにしました。
バス停車アプリが謎な方向に舵を切った瞬間です。
それはさておき、切り替えられるようになったとはいえ事前に用意した画像のみしか選択できません。
そこで今回は、カメラで撮影した画像を選択できるようにしてみます。
ついでに、GridViewを使って表示します。
カメラで撮影された画像はSDカード内に入っている事から、SDカードから画像データを読み込まねばなりません。
まずは仮想SDカードを作成するところから始めます。
コマンドラインで色々出来るようだけども、eclipseを使う前提で以下の流れで。
1.エミュレータ作成時にSDカードの容量を指定する
「Android SDK and AVD Manager」を選択
SD Cardの容量を入力し、ハードウェアでSD Card Supportを選択します。
とりあえず前準備完了。
2.画像を投入する
これも簡単。
新規作成したAVDを起動し、DDMSに切り替えて・・
放り込みたいファイルを「sdcard」にドラッグ&ドロップするだけ。
Eclipse便利だな・・・
3.アプリから読み出す
やっつけなコードで申し訳ないです。
例外処理は一切していませんので、実際に使用する場合は気をつけて下さい。
一応、下層のフォルダの中身も検索し、末尾がjpgかJPGのファイル名を取得します。
4.画像を表示する(GridView)
前回に引き続き、API Demosのサンプルを参考に。
http://d.android.com/guide/samples/ApiDemos/src/com/example/android/apis/view/Grid2.html
下記のソースは数箇所変更されています。
onCreate時にSDカード内のjpegのパスとファイル名をListに突っ込みます。
参考元のソースでは画像のリソースIDをint配列に入れていましたが、それをListに置き換えています。
取得した画像(今回はjpegのみ)を表示するのみですが、ビットマップに変換する際にOutOfMemoryが発生したので、変換前に画像を小さくしています。
(84行目あたり。これまたやっつけ臭いですが・・)
あと、レイアウト用のXML。
/res/layout/main.xml
さて、画像は表示できたので、いよいよ画像を切り替えたいところですが、
今回はここまで!
SDカードからの読み込み&表示に思いのほか時間を要してしまったので・・


