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

Android OutOfMemory error while scaling big images - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Считывание введенных данных с EditText http://www.cyberforum.ru/android-dev/thread1231230.html
Ребят в андройде я новичок, только начал изучать, у меня такой вопрос, как считать данные введенные пользователем в поле EditText?
Android Как можно указать размер ImageView из кода в DP Здравствуте, подскажите пожалуйста. Как можно указать размер ImageView из кода в DP? И еще: если изображение загружается из интернета, то как можно сохранить пропорции? http://www.cyberforum.ru/android-dev/thread1231117.html
Android Можно ли в студии узнать какие файлы из лежащих в папках проекта не участвуют в компиляции?
Можно ли в студии узнать какие файлы из лежащих в папках проекта не участвуют в компиляции? Пишу свои классы-"упростители" для разных операций и кидаю их в одну папку. Например цветные тосты со шрифтом любого размера с заданной позицией одной командой. Количество уже приближается к 25 - искать не нужные тяжело! Хочу "почистить" эту папку для каждого проекта. Пока вынужден менять (например)...
Прервет ли Тоаст работу других приложений при появлении Android
Запустили сервис, который, по окончанию, должен вывести Toast сообщение о результате работы. Тем временем, пользователь решил поиграть в игрушку, либо позвонить кому-нибудь. Так вот когда покажется Toast уведомление, прервется ли звонок, или приостановится ли игрушка?
Android Вызов метода из класса в таймере http://www.cyberforum.ru/android-dev/thread1230994.html
Не могу получить титул веб страницы в таймере (ошибка). Пример: public class Main_Web extends WebView { String texst = "test_project"; public Main_Web(Context context) { super(context); loadUrl("*.html"); title_timer.schedule(new B(), 0, 1000);
Android Распознавание рукописного ввода Где можно почитать, как работает распознавание рукописных символов в андроид-приложениях? Есть ли реализация в свободном доступе? Шаблоны символов? Вообще, что-нибудь на эту тему. подробнее

Показать сообщение отдельно
sunny_sunny
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 7

Android OutOfMemory error while scaling big images - Android

21.07.2014, 10:45. Просмотров 397. Ответов 3
Метки (Все метки)

Добрый день! Буду благодарна, если поможете решить небольшую проблемку.

Имеется несколько изображений (около пяти), которые я использую как фоновые в своем приложении. Все они имеют габариты 2000х2000 пикселей, чтобы нормально выглядеть даже на экранах планшетов с высокой плотностью пикселей. Я пытаюсь масштабировать изображение к размеру экрана, но каждый раз вылетает OutOfMemory error.

Код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void setBackgroundImage(int imageId, View layout) {
    layout.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
    int targetW = layout.getMeasuredWidth();
    int targetH = layout.getMeasuredHeight();
    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(context.getResources(), imageId, bmOptions);
    int photoW = bmOptions.outWidth;
    int photoH = bmOptions.outHeight;
 
    int scaleFactor = Math.min(photoW / targetW, photoH / targetH);
 
    bmOptions.inJustDecodeBounds = false;
    bmOptions.inSampleSize = scaleFactor;
    bmOptions.inPurgeable = true;
 
    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), imageId,
            bmOptions);
    BitmapDrawable bg = new BitmapDrawable(context.getResources(), bitmap);
    layout.setBackgroundDrawable(bg);
}
Ошибка появляется, когда я вызываю "BitmapFactory.decodeResource(context.getResources(), imageId, bmOptions);" во второй раз. Можно это как-то исправить? Или я что-то упускаю и есть другой способ масштабирования фонов? Я бы позасовывала их по папкам drawable-*dpi, но не знаю, до каких размеров обрезать, чтобы подходило и для маленьких экранов, и для больших. С иконками попроще в этом плане

Я также пробовала запихнуть все фоны в папку 'drawable-nodpi'. Тогда ошибка не вылетает, но все равно очень низкая производительность приложения, каждую картинку загружает 1-3 секунды.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru