Androidアプリ開発 -ギャラリーから選んだ画像のサムネイルを取得-

公開日: : Android, IT


 やりたいこと

  1. ボタンをクリックしてギャラリーを表示。
  2. ギャラリーで画像を選んだら、その画像のサムネイル画像を表示。

 ソース

 ギャラリーを表示させる

まず、onClickでimageBtnをクリックしたらギャラリーを開くようにしています。

startActivityForResultで、起動したギャラリーで画像を選択したら、呼び出し元のonActivityResultを呼び出すようにしています。
第2引数のREQUEST_GALLERYがonActivityResultメソッドのrequestCodeの値になります。

public void onClick(View view) {
 if (view == imageBtn) {
   Intent intent = new Intent();
   intent.setType("image/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);
   startActivityForResult(intent, REQUEST_GALLERY);
 }
}

 サムネイル画像を取得

ギャラリーで画像を選択すると、呼び出し元ActivityのonActivityResultメソッドが呼ばれます。
そこで、REQUEST_GALLERYだったかを判定して、そうであれば処理をおこないます。

そして、選択したギャラリーのデータ(data)からサムネイル画像を取得します。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) {
  try {
    Uri uri = data.getData();
    Cursor c = this.managedQuery(uri, null, null, null, null);
    c.moveToFirst();
    long id = c.getLong(c.getColumnIndexOrThrow("_id"));
    ContentResolver cr = getContentResolver();
    Bitmap img = MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MICRO_KIND, null);
    //略
  } catch (Exception e) {
  Toast.makeText(this, "失敗しました。", Toast.LENGTH_LONG).show();
  }
}

 まとめ

以上でギャラリーで選択した画像のサムネイル画像の取得は出来ます。
ただ、これが「スマートなのか?」と言われると多少疑問があったりもするので、他に方法があれば教えてくれると嬉しいです!

 参考サイト

広告

関連記事

Selenium2.0でUIテスト(1) -まずはPHPでやってみる-

久しぶりにSeleniumを触ってみました。 Selenium2.0から色々と変わったみたいで少々

記事を読む

構成

定期的にデータ取得のためにCakePHP1.3でシェル機能を利用

定期的にデータを取得する行為をするために、はじめてシェル機能を使ってみたのでメモ。 * ス

記事を読む

スクリーンショット 2012-10-20 14.26.24

iPhoneアプリ開発 −UITabControllerの利用−

* やりたいこと 上にあるように下部にあるタブをタッチしたら別のページを呼び出す。 * 

記事を読む

no image

MySQLのバックアップ手順 -消えたら困るものはバックアップ-

そろそろデータが消えてもらったら困るぐらいになっていたのでバックアップをとることにしました。 とい

記事を読む

no image

iPhoneアプリ開発 −2本指で画像を移動させる−

* やりたいこと 表示させている画像(UIImageView)を2本指で移動させたい。 ※1本指は別

記事を読む

Jenkins + iPhoneアプリ(番外1) -TestFlightを利用する-

* これまで - -- 執事(Jenkins)を雇いました。 * やりたいこと Jenk

記事を読む

iPhoneアプリ開発 芳名帳アプリ作成(1) -最初の一歩-

* 作るアプリ 結婚式や2次会で「自分の名前を書く」芳名帳 これをアプリで作ってみます。

記事を読む

no image

Androidアプリ開発 -リストをタッチして別ページ表示-

* 前提 -「設定画面」で各種項目を設定。 --Activity:ConfigActivity --

記事を読む

no image

iPhoneアプリをヒットさせるために大事な5つのこと

巷にはたくさんのiPhoneアプリがたくさんあります。 そして、毎日新しいアプリがリリースされていま

記事を読む

no image

jQuery Mobileの初期設定 -jQuery Mobieを利用時にページ内リンクさせたい-

* 前提 jQuery Mobileを利用していて、以下のタグを使ってページ内遷移したいことがありま

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑