Android получение файла не из ресурсов

199
10 сентября 2018, 16:10

Необходимо создать Bitmap из изображения png, находящегося не в ресурсах, а просто в папке проекта. Не могу понять какой путь прописывать, пробовал через BitmapFactory.decodeFile(путь к файлу) и также пробовал просто получить этот файл через new File(путь к файлу).

Возможно ли вообще такое сделать? Или андроид работает только с изображениями из ресурсов?

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

Answer 1

Для того чтобы понять посмотрите на то каким образом идет сборка проекта, вам важно понять что фактически то что лежит в папке проекта запаковывается в APK bundle - причем при некоторых ситуациях не все может попасть. Реально файлы на файловую системы устройства никогда не распаковываются, и Android работает со ZIP стримом делая маппинг в память. Если все таки вам надо так делать вам надо работать с файлами через специальный Asset Manager:

AssetManager assetManager = context.getAssets();
InputStream istr;
Bitmap bitmap = null;
try {
    istr = assetManager.open(filePath);
    bitmap = BitmapFactory.decodeStream(istr);
    if(isrt != null) istr.close();
} catch (IOException e) {
    // handle exception
}

Также имейте в виду что есть ограничение на размер APK, и для того чтобы динамически подгружать можно пользоваться механизмом APK Expansion Files

READ ALSO
Не срабатывает switch-case/if-else условие. Java

Не срабатывает switch-case/if-else условие. Java

Упражняюсь в Java на CodewarsВ задачке речь идет об очереди в кинотеатр, где билет на фильм стоит 25 долларов, а у посетителей могут быть купюры в 25, 50 и 100 долларов...

186
Как в бета версии сделать отправку определенных данных разработчику?

Как в бета версии сделать отправку определенных данных разработчику?

Разместил Бета версию приложения в PlayMarketНа период тестирования в приложении будет кнопка "Отправка статистики разработчику"

198
Абстрактные классы и композиция Java

Абстрактные классы и композиция Java

Можно ли использовать композицию, когда оба класса абстрактные? Например, у меня есть абстрактный класс Тело (от него я буду создавать конусы,...

166
Побитовая операция

Побитовая операция

Что происходит в данной строке?

192