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

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

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

Drawable and screen resolution - Программирование Android

13.01.2015, 15:23. Просмотров 451. Ответов 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 в первом варианте выдал ошибку? По идее он же должен был для маленького экрана уменьшить эту картинку, для большого растянуть, для подходящего ничего не делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2015, 15:23     Drawable and screen resolution
Посмотрите здесь:

How to set text size and layout according resolution and dpi - Программирование Android
Hi, Please tell me that How to set text size and layout according resolution and dpi?

Динамическое создание drawable-ресурса - Программирование Android
Доброго всем времени суток! Подскажите пожалуйста, возможно ли реализовать следующую задачу: Необходимо привязать к...

Как принудительно выбрать drawable - Программирование Android
Вопрос в следующем, есть 4 drawable: drawable, drawable-hdpi, drawable-ldpi, drawable-mdpi В зависимости от разрешения экрана Android сам...

Не используются иконки из drawable-xxxhdpi - Программирование Android
Здравствуйте, я только начал осваивать андройд поэтому извините за возможно глупый вопрос. Поиски решения проблемы в интернете к...

Drawable hdpi, mdpi, xhdpi, xxhdpi - Программирование Android
Здравствуйте! Подскажите пожалуйста. Допустим я нарисовал фон для нескольких активити, иконку приложения, изображения для imageview.......

IDE не видит файл .png в папке drawable - Программирование Android
В чем проблема? Размещайте изображения на форуме

Разные drawable для маркера Google Maps - Программирование Android
Здравствуйте. Есть код главной активити @Override public void onCreate(Bundle savedInstanceState) { ...

Как посмотреть все drawable картинки, доступные в проекте - Программирование Android
В SDK Android есть множество картинок, подходящих для иконок, фона кнопок и др. А их можно как то посмотреть все сразу в проводнике? А то...

Lock screen - Программирование Android
Привет всем! Нужна помочь, кто-то знает как определять когда телефон уходит в Lock при нажатии на кнопку Power и когда сам(именно эти 2...

Home Screen Widget Animation - Программирование Android
Добрый день, пишу виджет на который выводится некий текст, раз в 10 секунд он обновляется, и если не всматриваться то можно и не...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Diffuse
18 / 10 / 0
Регистрация: 28.11.2014
Сообщений: 151
13.01.2015, 19:27     Drawable and screen resolution #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);
Klafe
1 / 1 / 0
Регистрация: 13.10.2012
Сообщений: 101
13.01.2015, 23:05  [ТС]     Drawable and screen resolution #3
Я почему-то подумал, что это как минимум странно. Зачем тогда нужен параметр backgraund в xml? Или зачем тогда вообще xml? Можно все вручную кодить.

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

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