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

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

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

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

10.06.2013, 23:34. Просмотров 574. Ответов 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):

Ошибка при запуске AsyncTask при нажатии на пункт ActionBar - Программирование Android
Здравствуйте, почему при нажатии на пункт Action Bar'а вылетает ошибка? @Override public boolean onCreateOptionsMenu(Menu menu)...

Ошибка при просмотре изображений - Windows 7
Как можно это исправить?

Ошибка в коде при загрузке изображений - PHP
Доброй ночи. Не могу понять, где ошибка &lt;?php foreach ($_POST as $index =&gt; $value) { $index = $value; } ...

при открытии изображений выдается ошибка - Системный софт
Помогите решить проблему. При открытии изображений выдает ошибку

Распознавание изображений - ошибка при обучении - Искусственный интеллект
Библиотека AFORGE.NET neuro Попытался сделать распознаватель изображений / букв и т п. Получился такой алгоритм: Считать...

Ошибка при открытии изображений из любого архива - Программы архиваторы
День добрый. Наличествует такая проблема: На компьютере установлена Windows 7 x64, и 7-zip v.9.20. При попытке открыть *.jpg, находящееся...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 23:45 #2
используйте адаптер.
Hank
51 / 42 / 3
Регистрация: 28.12.2011
Сообщений: 239
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;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2013, 12:07
Привет! Вот еще темы с ответами:

Ошибка при обработке изображений: Index exceeds matrix dimensions - Matlab
В универе для расчётнографической работы дали задание Так звучит задание: Предположим, что Вы сформировали низкочастотный прост...

В GDI+ произошла ошибка общего вида при сохранении изображений из picturebox'a в файл - Visual Basic .NET
Опять не получается. Что посоветуете? Как все таки сделать сохранение изображений из picturebox'a в файл что бы не было ошибок? Вечная...

Windows7 - при печати в Paint.NET ошибка "Библиотека загрузки изображений Windows (WIA) waaut.dll недоступна" - Графические программы
При вызове печати в Paint.NET выдаёт: &quot;Библиотека загрузки изображений Windows (WIA) waaut.dll недоступна&quot; Как исправить, подскажите...

1C 8.x Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! - 1С
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.06.2013, 12:07
Ответ Создать тему
Опции темы

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