Android ACTION_VIEW несколько изображений - PullRequest
3 голосов
/ 04 марта 2012

У меня от одной до трех фотографий, которые я хотел бы показать в своем приложении.До времени выполнения я не буду точно знать, сколько фотографий загружено из Интернета.

Я не могу понять, как создать Намерение для отображения фотографий.Сейчас я кеширую их на SD-карте в папке, которую я создаю, выполняя что-то вроде (без проверки ошибок):

final File externalDirectory = Environment.getExternalStorageDirectory();
final String folder = externalDirectory.getAbsolutePath() + "/Android/data/" + packageName + "/files/";

Это было объяснено в Справочнике разработчика Android .

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

final Uri uri = Uri.fromFile(file);
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
Util.startActivity(this, intent);

Где file - файл сохраненной фотографии.

Если это поможет, я мог бысохраните изображения в любом месте, доступном для моего приложения, однако я бы предпочел не отображать фотографии в списке вместе с другими личными фотографиями пользователя, так как это может раздражать.

В программе просмотра изображений есть пункт меню «Слайд-шоу», поэтому он должен знать о нескольких фотографиях.

Я мог бы создать свой собственный Просмотрщик изображений, но это кажется дополнительной работой и сверх того, что я бы разумно ожидал.Даже если бы я это сделал, я бы хотел, чтобы пользователь мог установить стороннюю программу просмотра изображений и получить более удобную работу с панорамированием, масштабированием, совместным использованием, ...

Я пытался использовать каталог кэшированногофото файлы для создания Uri, но просмотрщик изображений показывает черную страницу.Если я передаю файл, он показывает только один файл, а другие нет.

Я знаю, что это должно быть возможно, потому что я вижу, что использую приложение Галерея и показываю фотографии, если я вручную выбираю папку.Каждый раз, когда я исследую эту проблему, в комментариях говорится, что невозможно показать несколько изображений.

Я подозреваю, что есть какое-то магическое заклинание, но что?

1 Ответ

4 голосов
/ 04 марта 2012

Я думаю, что ваша цель вне вашего контроля. Если приложение Viewer предназначено для работы с несколькими изображениями или каталогами, вы можете попросить его показывать их так, как вы хотите, но вы определены для шаблона зрителя.

Я установил стороннюю программу просмотра изображений под названием QuickPic . Я только что проверил ваш фрагмент кода, и система открыла диалоговое окно выбора, чтобы позволить мне выбрать приложение для отображения изображений в папке. Если я выбираю собственную галерею, то вижу только пустую папку, а Quickpic работает так, как я хочу.

PS: Я говорю своему приложению Uri папки следующим образом:

intent.setDataAndType(Uri.fromFile(new File("//mnt/sdcard/test/")), MimeTypeMap.getSingleton().getMimeTypeFromExtension("png"));
...