2013-12-11 3 views
10

Я строю приложение для Android «XYZ», в котором пользователи будут хранить такие носители, как изображения и видео. Поэтому я хотел бы создать папку в галерее Android под названием «XYZ» и хранить все носители, специфичные для приложения, в «XYZ». Как мне это достичь?Как создать специальную папку приложения в галерее Android?

В настоящее время я могу хранить носители на SD-карте и при сканировании медиафайлов, они отображаются в папке «images», в галерее Android.

ответ

25

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

static final String appDirectoryName = "XYZ"; 
static final File imageRoot = new File(Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_PICTURES), appDirectoryName); 

И видео

static final File videoRoot = new File(Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_MOVIES), appDirectoryName); 

И создать образ

imageRoot.mkdirs(); 
final File image = new File(imageRoot, "image1.jpg"); 
// open OutputStream and write the file 

Если добавить несколько файлов и открыть галерею вы должны увидеть альбом "XYZ". Обратите внимание, что вы не увидите альбом, если каталог пуст.

А насчет ваших слов

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

Представление зависит от используемого вами приложения Gallery. . Галерея Android по умолчанию должна создать «Альбомы», названные в честь папки, в которой находятся мультимедийные файлы.

Редактировать: вы не увидите вновь созданное изображение, если вы не запускаете медиа-сканер или не добавляете его в базу данных MediaStore.

2

Существует 1 миллиард устройств Android, представляющих тысячи моделей устройств, с сотнями различных приложений «галереи» (предварительно установленных или установленных пользователем). Для любого приложения «галереи» нет необходимости иметь концепцию папок, не говоря уже о том, что сторонние разработчики могут управлять этими папками.

Следовательно, нет общего способа достижения вашей цели, кроме как написать собственное приложение.

+0

На моем телефоне все мои изображения WhatsApp и изображения Skitch хранятся в соответствующих папках. Я хочу сделать то же самое для своего приложения. – FireAndIce

+0

@Mark: Вы правы. Но я думаю, что/sdcard/DCIM/является очень стандартным «галерейным» путем (для изображений). –

+0

@ Klaus66: Это не имеет никакого отношения к моему ответу. Просто потому, что вы помещаете * файлы * в определенную папку, не означает, что какое-либо данное приложение галереи должно отображать эту структуру папок. – CommonsWare

-2

Если вы можете хранить видео и изображения во внешнем хранилище, как SD-карте, я предполагаю, что вы знаете, как использовать «ФАЙЛЫ»

поэтому вам просто нужно назвать место, которые вы хотите сохранить в и создать он (если оно не существует)

что-то вроде:

File file = new File(Environment.getExternalStorageDirectory() +"/XYZ/"); 

if(!file.exists())  //check if file already exists 
{ 
    file.mkdirs();  //if not, create it 
} 

это ваш каталог папок, и вы можете сохранить в нем то, что вы хотите.

что-то вроде:

File imageFile = new File(file.toString() + "image" + ".jpg"); 

Это создаст файл изображения под названием "image.jpg" в директории XYZ.

Смежные вопросы