Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Klafe
1 / 1 / 1
Регистрация: 13.10.2012
Сообщений: 101
#1

Drawable and screen resolution

13.01.2015, 15:23. Просмотров 542. Ответов 5
Метки нет (Все метки)

Много прочитал всего по данному вопросу, но непонятности все таки меня не оставили. Собственно вопрос:

Имею картинку для фона и хочу что бы она отображалась на экранах с разными разрешениями.

Первый вариант как это сделать - это создать копии этой картинки с разными разрешениями и раскидать их по папкам drawable-hdpi-ldpi... В принципе самый оптимальный, как я понял, вариант. Но если у меня 20 таких картинок? Сколько места они скушают, тем более если приложение небольшое.

Ладно, если они критичны к масштабированию (надписи, рисунки...), то придется их все таки копировать.

Но если они не критичны к масштабированию, то можно ли создать по одному экземпляру каждой картинки с каким-нибудь оптимальным разрешением и положить их в папку drawable, а android будет их сам масштабировать?

Я думал, что можно, но то ли лыжи уехали, то ли я на коньках в них влез.

Что я делаю:

Беру картинку, разрешение 1080x1920, размер 500 КБ, копирую ее в папку drawable. Ставлю ее фоном в xml. Создаю AVD Nexus 5 (по параметрам у него экран 1080x1920), запускаю приложение, вылетает ошибка, которая показывает на строку
Java
1
setContentView(R.layout.main)
, а пишет Out of memory.

Собственно, беру эту же картинку, удаляю ее из drawable, а вставляю в drawable-hdpi. Бинго, все работает.

Почему же android в первом варианте выдал ошибку? По идее он же должен был для маленького экрана уменьшить эту картинку, для большого растянуть, для подходящего ничего не делать?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2015, 15:23
Ответы с готовыми решениями:

How to set text size and layout according resolution and dpi
Hi, Please tell me that How to set text size and layout according resolution...

Drawable
Короч, перетащил xml файлы drawable и values в проект. Как перетащить...

Работа с Drawable
Закинул в res/drawable картинку png (1000×1000 30кб), ставлю ее на linear...

Папки Drawable
Здравствуйте. Сразу к проблеме. Добавил в drawabel-hdpi(150x150) и...

Icon в Drawable возможно?
Возможно ли перевести Icon в Drawable? Есть пакет FontAwesome.Icon, могу ли...

5
Diffuse
18 / 10 / 0
Регистрация: 28.11.2014
Сообщений: 151
13.01.2015, 19:27 #2
Правильней сделать так фотку в ресурсы и загрузить из ресурсов а так у тебя выход за пределы памяти Out of memory.

Java
1
2
3
4
5
6
  
  private Paint Brush = new Paint();
  private Bitmap xxx;
  xxx = BitmapFactory.decodeResource(res, R.drawable.idres);
  canvas.drawBitmap(xxx, 100, 100, Brush);
  canvas.drawPaint(Brush);
0
Klafe
1 / 1 / 1
Регистрация: 13.10.2012
Сообщений: 101
13.01.2015, 23:05  [ТС] #3
Я почему-то подумал, что это как минимум странно. Зачем тогда нужен параметр backgraund в xml? Или зачем тогда вообще xml? Можно все вручную кодить.

И почему-то про этот out of memory и размеры связанные с ним в официально документации ничего не сказано. Там просто написано, что или создавайте по изображению для каждого экрана или android сам его подгонит, но нет гарантии, что оно будет корректно отображаться.
0
Diffuse
18 / 10 / 0
Регистрация: 28.11.2014
Сообщений: 151
13.01.2015, 23:20 #4
про out of memory скажут в разделе исключительных ситуаций аля критических ошибках их конечно надо обрабатывать. вручную и надо программировать хмл не исключает а объединяет твой код и твои настройки.
0
Klafe
1 / 1 / 1
Регистрация: 13.10.2012
Сообщений: 101
14.01.2015, 07:59  [ТС] #5
А как все таки правильно делать? Не обращать внимание на размер и делать копии изображений для разных экранов? Или по возможности стоит использовать автоматическую подгонку?
0
Diffuse
18 / 10 / 0
Регистрация: 28.11.2014
Сообщений: 151
14.01.2015, 12:08 #6
я лично параноик ))) не доверяю всему что автоматически делается когда сделал вручную то знаешь что должно работать так но не обязанно ))) для начала надо сделать любым способом который даст положительный результат а потом уж искать другой способ если уж необходимо.
0
14.01.2015, 12:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2015, 12:08

Отличия drawable от Bitmap
Чем отличается drawable от Bitmap?

Загрузить картинку в Drawable
И так. Смотрите, дефолтные картинки я кидаю в Draweable. И их от туда беру....

Масштабирование картинок из drawable
Здравствуйте! Суть в следующем, есть самодельное меню из картинок, при...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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