web-dev-qa-db-ja.com

Android Intentsを使用してフォトギャラリーから複数の画像を選択します

@これを見る https://stackoverflow.com/a/15029515/185022

ギャラリーから画像を選択しようとしていますが、1つの画像を選択する方法しか見つかりませんでした。

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);

複数の画像を選択する方法はありますか?

29
spe
7
Siklab.ph

まず、photoPickerIntentでputExtraを使用する必要があります

photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE);

次に、onアクティビティの結果で、次のようにIntentからClipDataを取得する必要があります

ClipData clipData = data.getClipData();
//Where data is param intent of onActivityForResult

そして、このclipDataを反復して、選択した特定の画像のURIを取得します。

for (int i = 0; i < clipData.getItemCount(); i++){
    Uri uri = clipData.getItemAt(i).getUri();
}

これが役に立てば幸い

4
lukaspp

私は、複数の画像選択アクションに対してカスタムギャラリーを実装する必要があると思います。

詳細は here を参照してください。

1
Bhavesh Hirpara

ACTION_SEND_MULTIPLEを試してみませんか。 Urisのセットを受け取ります。

何かのようなもの

    if (Intent.ACTION_SEND_MULTIPLE.equals(action))
        && Intent.hasExtra(Intent.EXTRA_STREAM)) {
        ArrayList<Parcelable> list =
    intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
        for (Parcelable parcel : list) {
           Uri uri = (Uri) parcel;
           /// do things here.
       }
    } 

このコードブロックをgoogle-groupsの投稿で見ました。これを試してみてください。ありがとう。

1
VenoM