Android Studio - выберите несколько изображений из (обычной) галереи - PullRequest
0 голосов
/ 17 ноября 2018

Я хочу, чтобы пользователь мог выбрать несколько изображений из «обычной» галереи. В настоящее время он открывает своего рода файловый менеджер вместо галереи. Что я могу сделать, чтобы он использовал «нормальную» галерею?

В настоящее время я открываю файловый менеджер / галерею следующим образом:

    Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    gallery.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    gallery.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(gallery, "Select Picture"), 5);

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Я хочу, чтобы пользователь мог выбрать несколько изображений из «обычной» галереи

Существует более 20 000 моделей устройств Android. Там будут десятки, если не сотни, предустановленных приложений галереи, в дополнение к тем, которые устанавливают пользователи. Там нет "нормального".

Также не требуется, чтобы какое-либо из этих приложений галереи поддерживало множественный выбор.

В настоящее время вместо галереи открывается своего рода файловый менеджер.

Я предполагаю, что вы имеете в виду пользовательский интерфейс, вызванный ACTION_GET_CONTENT.

Могу ли я что-нибудь сделать, чтобы он использовал «нормальную» галерею?

Удалите строку ACTION_GET_CONTENT, чтобы ваше действие Intent было ACTION_PICK.

Имейте в виду, что, поскольку ACTION_PICK не документировано для поддержки EXTRA_ALLOW_MULTIPLE & mdash; а так как поддержка дополнений всегда является дополнительной & mdash; очень немногие устройства могут вернуть вам несколько изображений.

Также имейте в виду, что ACTION_PICK не гарантирует отображение чего-либо, что вы можете считать приложением галереи.

0 голосов
/ 17 ноября 2018

Попробуйте отфильтровать результаты по типу изображения.Примерно так:

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, RESULT_LOAD_IMG);

Добавление этого, вероятно, будет достаточно для вашего кода:

gallery.setType("image/*");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...