質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

8124閲覧

android image 複数選択(動画も)

a_ya

総合スコア32

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2015/06/23 15:16

編集2015/06/23 18:24

質問よろしくお願いします。

開発環境
iMac
Android studio1.2

teratailの参考にした質問

androidにて、画像(動画も)一気に複数選択としたいのですが、
上記参考にした質問の通りにしてみたのですが、
画像を一気に複数選択自体ができませんでした。
1つ画像選択したら元の画面に戻り、画像が表示されました。
imageviewとボタンは1つずつ用意しています。

どこをどういう風に変更したら一括選択になるでしょうか?
また、動画も一緒にとなるとどうしたら良いでしょうか?

lang

1 @Override 2 public void onClick(View v) { 3 // ギャラリー呼び出し 4 Intent intent = new Intent(); 5 intent.setType("image/*"); 6 intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 7 intent.setAction(Intent.ACTION_GET_CONTENT); 8 startActivityForResult(Intent.createChooser(intent,"画像を選択"), REQUEST_GALLERY); 9 } 10 11 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 12 // TODO Auto-generated method stub 13 if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) { 14 try { 15 InputStream in = getContentResolver().openInputStream(data.getData()); 16 Bitmap img = BitmapFactory.decodeStream(in); 17 in.close(); 18 // 選択した画像を表示 19 imgView.setImageBitmap(img); 20 } catch (Exception e) { 21 22 } 23 } 24 }

追記
MediaStoreについて

MediaStoreで試したコード

質問後も検索し調べたり試したりしていたらMediaStoreというものを見つけました。こちらは画像も動画も選択できるとの事ですが(動画は取得できるか試してはいません)こちらを使用するのでしょうか?
写真動画を一緒に複数選択。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Intent.EXTRA_ALLOW_MULTIPLEのAPIの説明によると、
getClipData()で結果が返るのでこれを使う必要がありますね。

動画選択は、setTypeで、MIME(video/*)を追加します。

動作環境が記載されてないのですが、AndroidOSは4.3以降でしょうか?
EXTRA_ALLOW_MULTIPLEは、Android4.3以降からのサポートです。
getClipData():APIレベル16(Android4.1以降)
Intent.EXTRA_ALLOW_MULTIPLE:APIレベル18(Android4.3以降)

lang

1 2 public void onClick(View v) { 3 // ギャラリー呼び出し 4 Intent intent = new Intent(); 5 intent.setType("image/*,video/*"); 6 intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 7 intent.setAction(Intent.ACTION_GET_CONTENT); 8 startActivityForResult(Intent.createChooser(intent,"画像/動画を選択"), REQUEST_GALLERY); 9 } 10 11 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 12 if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) { 13 if(data.getData() != null){ 14 // 単一選択 15 try { 16 Uri uri = data.getData(); 17 InputStream in = getContentResolver().openInputStream(uri); 18 Bitmap img = BitmapFactory.decodeStream(in); 19 in.close(); 20 // 選択した画像を表示 21 imgView.setImageBitmap(img); 22 } catch (FileNotFoundException e) { 23 e.printStackTrace(); 24 } catch (IOException e) { 25 e.printStackTrace(); 26 } 27 } else { 28 // 複数選択(EXTRA_ALLOW_MULTIPLE) 29 ClipData clipData = data.getClipData(); 30 for(int i = 0; i < clipData.getItemCount(); i++){ 31 // i に対するビューを設定 32 ImageView targetView = null; 33 switch (i) { 34 case 0: 35 targetView = imgView; 36 break; 37 default: 38 break; 39 } 40 // ビューに画像を設定 41 if (targetView != null) { 42 try { 43 ClipData.Item item = clipData.getItemAt(i); 44 Uri uri = item.getUri(); 45 InputStream in = getContentResolver().openInputStream(uri); 46 Bitmap img = BitmapFactory.decodeStream(in); 47 in.close(); 48 // 選択した画像[i]を表示 49 targetView.setImageBitmap(img); 50 } catch (FileNotFoundException e) { 51 e.printStackTrace(); 52 } catch (IOException e) { 53 e.printStackTrace(); 54 } 55 } 56 } 57 } 58 } 59 }

ちなみに手元にあるAndroid4.2では基本シングル選択しかできませんが、
ファイル選択するアプリの中で1つだけ複数選択出来ました。
なので4.2以前でもEXTRA_ALLOW_MULTIPLEに対応したファイル選択アプリを
使えば複数選択出来るのかもしれませんね。

投稿2015/06/24 23:24

horohoro

総合スコア490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a_ya

2015/06/25 06:36 編集

ご回答ありがとうございます。 環境はエミュですが、Nexus7のAndroid4.4.4を使用しています。 ターゲットは3.0〜で作成していたのですが、 教えて頂いたコードで4.3〜も今試してみたのですが、複数同時選択はできず、1つ選んだら元の画面に戻り1つだけ画像表示となってしまいます。 >>ファイル選択するアプリの中で1つだけ複数選択出来ました。 こちらはどういう事でしょうか? 4.2以下のバージョンの端末をいくつか持っていて、その中の1機種だけ複数選択できたという事でしょうか? 4.3以上でも機種やバージョンによっては正常に動かない可能性があるという事でしょうか?
horohoro

2015/06/25 14:51

投稿を書いたときに試したのは、1機種(SH-06E)です。 これで動作指せたとき、フォト、ギャラリー、アルバム、ESファイルエクスプローラと いくつかファイル選択するアプリを選べたのですが、フォトのみ複数選択可能でした。 ちなみに、Nexus7 (Android5.1)も試してみましたが、 こちらは、タップで単一ファイル選択、ロングタップで複数ファイル選択する 動作だったので、機種やバージョンによって操作方法が違う可能性はあります。 > 4.3以上でも機種やバージョンによっては正常に動かない可能性があるという事でしょうか? Nexus7でもESファイルエクスプローラでは、複数選択出来ませんし、 選択したファイル選択アプリがEXTRA_ALLOW_MULTIPLEに未対応なら 複数選択出来ないかと思います。 Android 4.3以降であれば、OS標準のアプリで対応していそうな気がしますが、、、 ただの推測なのでこれについては何とも言えません。
guest

0

ベストアンサー

https://github.com/giljulio/android-multiple-image-picker
っぽいライブラリを使って自前で複数選択したほうが楽な気がします

でもまあ GoogleDriveやDropbox対応したくて
Storage Access Framework
とか使いたい場合でも、確か単一な選択方式しか公開されていないんですよねー<汗
(Gmailとかは複数選択できたりするのですが。。。

投稿2015/06/26 01:22

kimukou_26

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a_ya

2015/06/28 09:59

ご回答ありがとうございます。 おっしゃってる通りにライブラリを使う方が早いのかもですね。>< ライブラリを入れる方法がよく分かってなくて入れれない状態ですけどその方法を試してみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問