Как получить все изображения из памяти телефона в мое приложение? - PullRequest
3 голосов
/ 28 ноября 2011

В одном действии моего приложения для Android необходимо показать все изображения с телефона, включая SD-карту, изображения с камеры, загрузки и т. Д. Как я могу выполнить это с помощью кода? Будь через Intent или какими-то другими возможными способами? (например, в приложении Google + он показывает все картинки с телефона).

Ответы [ 3 ]

4 голосов
/ 28 ноября 2011

Вам необходимо запросить базу данных контента, используя распознаватель контента

String[] mProjection = {MediaStore.Images.Media._ID,
                                MediaStore.Images.Media.DATA};

mCursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                               mProjection,
                               null,
                               null,
                               MediaStore.Images.Media.DEFAULT_SORT_ORDER);

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

Возможно, вам потребуется GridView, и адаптер для GridView может использовать курсор для получения изображений по одному.

1 голос
/ 28 ноября 2011

Лучший способ сделать это - использовать контент-провайдер MediaStore.Images.Это покажет все изображения, которые появляются в приложении Галерея.Тем не менее, он не будет отображать скрытые изображения или изображения в папках, которые содержат файл .nomedia.Если вы хотите показать их, вам придется рекурсивно сканировать файловую систему (см. File).

0 голосов
/ 28 ноября 2011

Вы хотите открыть только стандартное приложение для Android-галереи?

Если нет, вы всегда можете использовать этот класс MediaStore.В ней есть вся необходимая информация.http://developer.android.com/reference/android/provider/MediaStore.html

...