Как загрузить 1000 изображений из ресурсов в адаптер ViewPager в Android? у меня проблемы с памятью - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь прочитать несколько изображений из ресурса для просмотра адаптера пейджера, передав список массивов, но когда загружено 100 изображений, у меня проблемы с памятью?Ссылка кода https://www.selmanalpdundar.com/how-to-read-all-images-from-sub-folder-of-assets-in-android.html`

  ArrayList<Drawable> dr= new ArrayList<Drawable>();
    try {


        AssetManager assetManager = getAssets();

        String[] images = assetManager.list("dogs");

        Drawable[] drawables = new Drawable[images.length];

        for (int i = 0; i < 1200; i++) {
           InputStream inputStream = getAssets().open("dogs/" + images[i]);
            Drawable drawable = Drawable.createFromStream(inputStream, null);

            dr.add(drawable);
        }
    } catch (IOException e) {
        // you can print error or log.
    }

1 Ответ

0 голосов
/ 10 мая 2019

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

Вам нужно будет выработать некоторую логику, чтобы решить, какое изображение вы хотите загрузить следующим на летуи вытащите его из памяти, как и когда вам это нужно.Будет зависеть от того, как изображения организованы.Если вы еще этого не сделали, я бы предложил использовать библиотеку обработки изображений, такую ​​как Picasso или Glide.Оба они имеют встроенное кэширование, чтобы избавить вас от проблем

...