Как получить доступ к файлу внутри папки ресурсов, отличной от стандартного «res» - Android

В Android Studio мне нужно использовать некоторые ресурсы (изображение, аудио и т. Д.) Из папки, отличной от стандартной «res»,

Предположим, что у меня есть:

  • папке '_Resources', содержащей изображение 'aaa.png'.
  • стандартная папка «res», содержащая изображение «bbb.png»

Я поместил внутри файла градиента:

android {
   sourceSets {
         main.resources.srcDirs += 'C:/..../myLibrary/src/_Resources'
   }
}

После этого я вижу в окне Android (вверху слева от Android Studio) правильную стандартную папку «res» и папку «resources».

если мне нужно получить доступ к «bbb.png» стандартной папке «res», я использую:

import com.myproject.R
.....
int xxx = R.drawable.bbb

ВОПРОС: как теперь можно получить доступ к aaa.png?

Это не видно в Р.; поэтому я попытался импортировать что-то еще, но что?

Спасибо в Advance Fausto

android,android-studio,android-gradle,android-resources,

0

Ответов: 2


0

Это невозможно. Если вы определяете два файла png с тем же именем в нескольких папках ресурсов, андроид будет загружать только один из них (не уверенный, какой из них).

Их имя на самом деле является их идентификатором. И понятие ИД чувствительно, если оно уникально. Поэтому вы не можете это сделать.

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


0

для тех, кто может иметь такую ??же проблему:

Мне не удалось получить доступ к папке ресурсов, но я нашел другое решение, которое соответствует моим потребностям:

Я добавил папку _Resources в Assets, записывая в файл gradle:

main.assets.srcDirs += 'C:/..../myLibrary/src/_Resources'

то я получаю доступ в коде к ресурсам:

AssetManager assetManager = getAssets();
InputStream myInputStream = assetManager.open("aaa.png");

Это все...

андроид, андроид-студия, андроид-Gradle, андроид-ресурсы,