Как создать конкретную папку приложения в галерее Android?

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

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

Ответ 1

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

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". Обратите внимание: вы не увидите альбом, если каталог пуст.

И о ваших словах

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

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

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

Ответ 2

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

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

Ответ 3

Если вы можете хранить видео и изображения во внешнем хранилище, например, на 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.