Nano Hash - криптовалюты, майнинг, программирование

Открытие файла из папки активов в Android

У меня есть файл .gif в папке с ресурсами, например, этот assets/Files/android.gif. когда я пытаюсь открыть файл, он выдает исключение во второй строке

AssetManager mngr=getAssets();
InputStream is2=mngr.open("Files/android.gif");

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

19.12.2009

Ответы:


1

Эти линии работают отлично--

InputStream assetInStream=null;

try {
    assetInStream=getAssets().open("icon.png");
    Bitmap bit=BitmapFactory.decodeStream(assetInStream);
    img.setImageBitmap(bit);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if(assetInStream!=null)
    assetInStream.close();
}

Если ваше изображение очень большое, вам следует масштабировать его перед декодированием в растровое изображение. см. Как эффективно отображать большие изображения

14.12.2011
  • Поток AFIK должен быть закрыт после использования 19.02.2012

  • 2

    Я подозреваю, что вы получаете жалобы на необработанное исключение типа IOException. В этом случае вам нужно поместить вызов mgr.open в блок try-catch, чтобы обработать исключение, которое может возникнуть при извлечении объекта InputStream.

    AssetManager mngr = getAssets();
    try {
        InputStream is2 = mngr.open("Files/android.gif");
    } catch (final IOException e) {
        e.printStackTrace();
    }
    
    19.12.2009

    3

    Не знаю, изменилось что-то или нет, но у меня было приложение в Android 1.1, которое открывало значки, а затем отображало их в представлении, и я сделал это так:

    BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value));
    Bitmap bitmap = BitmapFactory.decodeStream(buf);
    
    19.12.2009

    4

    Я считаю, что предпочтительный способ сделать это — поместить ваше изображение в каталог res/drawable. Затем вы можете получить Drawable следующим образом:

    Drawable d = Resources.getSystem().getDrawable(R.drawable.android);
    
    19.12.2009

    5

    Мина, у меня была та же проблема... У меня были изображения и XML-файл в «активах», и я мог читать XML-файл, но не изображения. После пары часов разочарований я наконец нашел решение!

    Я разместил решение здесь: Проблема с нулевым указателем при отображении изображения из папки ресурсов Android 2.2 SDK

    05.05.2011

    6

    Я не верю, что GIF автоматически поддерживается на Android. Попробуйте png или jpg с тем же кодом.

    27.10.2018
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..