Единственное намерение позволить пользователю сделать снимок ИЛИ выбирает изображение из галереи в Android

Я разрабатываю приложение для Android 2.1 вверх. Я хочу позволить моим пользователям выбрать фотографию профиля в рамках своего приложения (я не использую платформу контактов).

Идеальное решение состояло бы в том, чтобы запустить намерение, которое позволяет пользователю выбрать изображение из галереи, но если соответствующее изображение не доступно, затем используют камеру, чтобы сделать снимок (или наоборот т.е. позволить пользователю делать снимок, но если они знают, что уже уже имеют подходящее изображение, позволяют им заскочить в галерею и выбрать, сказал что изображение).

В настоящее время я могу сделать один или другой, но не оба.

Если я иду непосредственно в использование режима камеры MediaStore. ACTION_IMAGE_CAPTURE затем нет никакой опции заскочить в галерею.

Если я перехожу непосредственно к галерее с помощью Намерения. ACTION_PICK затем, я могу выбрать изображение, но если я нажимаю кнопку камеры (в правом верхнем углу галереи) затем новое намерение камеры, запущен. Так, любой снимок, который сделан, не возвращается непосредственно к моему приложению. (Уверенный можно нажать кнопку "Назад", чтобы ронять в галерею и выбрать изображение оттуда, но это - дополнительный ненужный шаг и нисколько не интуитивно).

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

66
задан Damian 25 April 2010 в 12:07
поделиться

1 ответ

ОБНОВЛЕНИЕ : другой ответ, использующий EXTRA_INITIAL_INTENTS , на данный момент лучше. На момент написания ответа EXTRA_INITIAL_INTENTS еще не существовал, поскольку он был добавлен в API уровня 5.

Итак, есть ли способ объединить оба или я собираюсь должны предложить меню, чтобы выполнить одно или другое из моего приложения?

Напишите свою собственную галерею с желаемыми функциями.

Думаю, меню было бы проще.

Похоже, это обычный случай использования ... Я что-то упускаю?

Разработчик рядом с вами подумает, что галерея должна позволять вам выбирать из местной галереи, иначе перейдите на Flickr, чтобы сделать выбор оттуда. Другой разработчик подумает, что камера должна не только позволять «делать снимок» через камеру, но и «делать снимок», выбирая что-то из галереи, инвертируя вещи так, как вы это себе представляете. Еще один разработчик подумает, что галерея должна позволять выбирать из локальной галереи, Flickr, камеры или веб-камеры, подключенной к сети. Еще один разработчик сочтет эту галерею глупой и пользователям следует просто выбирать файлы через файловый проводник. И так далее.

И все это в среде (мобильные телефоны), где флэш-память для ОС стоит дорого.

Следовательно, ИМХО, не совсем шокирует то, что основная команда Android решила предоставить вам строительные блоки, которые вы собираете по своему усмотрению, вместо того, чтобы пытаться учесть все возможные шаблоны.

13
ответ дан 24 November 2019 в 14:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: