0

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

Давайте предположим, что у меня есть:

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

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

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?

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

Спасибо заранее Фаусто

+0

Попробуйте изменить 'main.resources.srcDirs' на' main.res.srcDirs', а затем посмотрите, генерируете ли вы значения R для этих ресурсов. – CommonsWare

+0

Я пробовал, но он не работает – Fausto70

ответ

0

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

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

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

+0

Спасибо, но имя двух файлов отличается: aaa и bbb; причина, по которой мне нужна другая папка ресурсов, заключается в том, что эта папка используется совместно с другими проектами (в NetBeans). – Fausto70

+0

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

+0

. Вы сказали в своем вопросе, что в настоящее время оба папки res содержат aaa.png !!! –

0

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

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

я добавил папку «_Resources» в активах, писавший в Gradle файла:

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

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

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

Вот и все ...