1. ホーム
  2. android

[解決済み] アンドロイドのギャラリーから複数の画像を選択

2022-02-12 01:57:18

質問

つまり、基本的に私が実現しようとしているのは Gallery をAndroidで選択し multiple images . 今、こんな質問がありました。 頻繁に しかし、私はその答えに納得していません。主に、私のIDEのde docsで興味深いことを見つけたので(これについては後ほど)、カスタムアダプタではなく、バニラアダプタを使いたいのです。

さて、1つの画像を選択するための私のコードは次のとおりです。

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);

SOや他のサイトでは、2つのオプションがあると言われています。

1) ACTION_GET_CONTENT ただし ACTION_SEND_MULTIPLE の代わりに
これはうまくいきませんね。こちらは、ドキュメントによると sending ファイルではなく retrieving とありますが、まさにその通りです。ACTION_SEND_MULTIPLEを使用すると、私のデバイスでウィンドウが開き、データを送信するアプリケーションを選択する必要がありました。これは私の望むところではありません。では、この解決策でどのように達成されたのでしょうか?私は何かを見逃しているのでしょうか?

2) custom Gallery . というのも、自分でスタイルを決めなければならず、また、なぜバニラギャラリーでは複数の画像を選択できないのでしょうか?

このためのオプションがあるはずです。さて、私が見つけた興味深いことは、これです。
のドキュメントにこんな記述がありました。 ACTION_GET_CONTENT .

呼び出し側が複数の返された項目を処理できる場合(ユーザーが を指定することができます。 を表示します。

これはなかなか興味深いですね。ここでは、ユーザーが複数のアイテムを選択できるユースケースに言及しているのですね。

その後、彼らはドキュメントで言っています。

EXTRA_ALLOW_MULTIPLEを使用して、ユーザーが複数選択できるようにすることができます。 の項目があります。

つまり、これはかなり明白なことですよね?これは私が必要とするものです。しかし、私の次の質問は:私はこれを置くことができます。 EXTRA_ALLOW_MULTIPLE ? 悲しいことに、これは developers.android ガイド また、これはINTENTクラスの定数として定義されていないのでしょうか。

どなたか教えてください EXTRA_ALLOW_MULTIPLE ?

解決方法は?

Intent.putExtra()メソッドでEXTRA_ALLOW_MULTIPLEオプションをインテントに設定します。

intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

上のコードは、次のようになります。

Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);

EXTRA_ALLOW_MULTIPLE オプションは、Android API 18以降で利用可能です。