Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
JS
1 / 1 / 0
Регистрация: 25.11.2011
Сообщений: 27
#1

Ошибка при заргузке изображений - Android

10.06.2013, 23:34. Просмотров 566. Ответов 4
Метки нет (Все метки)

Если загружать не много изображений (штук 10), все работает нормально. А при загрузке больше 10, приложение завершает работу. В логах пишет OutOfMemoryError: bitmap size exceeds VM budget.
Загружаю с sdcard
Java
1
2
3
4
5
    public void setBitmap()
    {   
        for(int i=1;i<15;i++){
            GalImages[i-1] = BitmapFactory.decodeFile("mnt/sdcard/img/"+i+".png");
    }
А вывожу с помощью ViewPager
Java
1
2
3
4
5
6
7
    public Object instantiateItem(ViewGroup container, int position) {
      ImageView imageView = new ImageView(context);
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
      imageView.setImageBitmap(GalImages[position]) ;
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }
Получается загружает сразу все изображения. Можно ли сделать так, чтобы загружались, например, по 2 изображения, т.е. приложение загрузилось, отображается первое изображение, перешли на второе изображение, подгрузились еще 2. Ну или как-нибудь по другому можно исправить эту ошибку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 23:34     Ошибка при заргузке изображений
Посмотрите здесь:

Ошибка при запуске Android
Ошибка при сворачивании Android
Android Ошибка при вычитании
Ошибка при TabHost Android
Android Ошибка при нажатии
Ошибка при при смене активити Android
Android Ошибка при запуске VM VB
Ошибка при запуске Android
Ошибка при построение Android
Android Ошибка при компиляции
Ошибка при accept() Android
Android "Ошибка при синтаксическом анализе пакета" при скачивании файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 23:45     Ошибка при заргузке изображений #2
используйте адаптер.
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
11.06.2013, 07:26     Ошибка при заргузке изображений #3
Загружайте изображения из кэш памяти, это позволит избежать утечек памяти. Только перед тем как взять что-то из кэша, это нужно туда поместить. В кэш изображения записываются в отдельном потоке, а из кэша для отображения в программе берутся в потоке UI. Это позволятся избежать тормоза при открытии новой картинки. Вот здесь расписано как эффективно работать с изображениями http://developer.android.com/trainin...aps/index.html.
JS
1 / 1 / 0
Регистрация: 25.11.2011
Сообщений: 27
11.06.2013, 09:39  [ТС]     Ошибка при заргузке изображений #4
Цитата Сообщение от V0v1k Посмотреть сообщение
используйте адаптер.
Так я его и использую! Код выше это класс ImageAdapter, а в OnCreate создаю объект данного класса
Java
1
2
3
        viewPager = (ViewPager) findViewById(R.id.view_pager);
        ImageAdapter adapter = new ImageAdapter(this);
        viewPager.setAdapter(adapter) ;
Hank, за ответ спасибо, но сомневаюсь что поможет, т.к. до 1 Мб грузит, а вот 10 не думаю что поможет)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.06.2013, 12:07     Ошибка при заргузке изображений #5
Java
1
2
3
4
5
6
7
public Object instantiateItem(ViewGroup container, int position) {
      ImageView imageView = new ImageView(context);
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
      imageView.setImageBitmap(BitmapFactory.decodeFile("mnt/sdcard/img/"+ (position + 1) +".png")) ;
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }
Yandex
Объявления
11.06.2013, 12:07     Ошибка при заргузке изображений
Ответ Создать тему
Опции темы

Текущее время: 07:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru