07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Java】暗黙のIntentでギャラリーを呼び出す 

初めまして、とりあえず金曜担当の大坂です。

Javaでツールや簡単なゲームを作成しています。(今後Unityもやらないとなぁ・・・)
今週の火曜日にも「LockPiker」という暇つぶしアプリを公開しました!
すべての数字と場所の正解を目指して、挑戦した桁数分の数字を選んで解除ボタンを押すだけの単純なゲームですが意外と嵌ります!!是非ダウンロードしてみてください!

と、挨拶はこの辺にして、私の担当回ではJavaでアプリを作っているときの覚書を記事にしていきます。
ということで、タイトルの「暗黙のIntentでギャラリーを呼び出す」についてです。

まずはギャラリーの呼び出し方から。 

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(intent, 10); //10はリクエストコード


これだけでギャラリーのアプリが呼び出せます。便利ですね!
「intent.setAction(Intent.ACTION_GET_CONTENT);」を使用してもいいのですが、
エクスプローラやらほかのアプリもいっぱい選択する画面に出てしまい使い勝手が悪かったので、
画像データを取得するためのアプリを起動する「intent.setAction(Intent.ACTION_PICK); 」を使用しています。

次に呼び出した後のデータの受け取り方です。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10 && resultCode == RESULT_OK) {
try {
URI imageUri = data.getData();
InputStream is = getContentResolver().openInputStream(imageUri);
Bitmap bitmap = BitmapFactory.decodeStream(is);
is.close();
}
}
}


受け取ったデータを取得するとURIが渡されるので、ImputStreamを経由してBitmapにしています。
こんな感じで端末に保存している画像を使用できるわけです。簡単ですね!

受け取ったデータが大きすぎたりしてOutOfMemoryとか発生する場合は画像を小さくするなどの対策が必要ですが、その辺の話はまたの機会ということで・・・。

ではでは、また来週(´・ω・)ノシ
スポンサーサイト

Category: 開発日記(Java)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/3-fb54758b
この記事にトラックバックする(FC2ブログユーザー)