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

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

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

Drawable and screen resolution - Android

13.01.2015, 15:23. Просмотров 444. Ответов 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
Посмотрите здесь:

Android Масштабирование картинок из drawable
Android Отличия drawable от Bitmap
Drawable поверх imageView Android
Android Ссылка на изображение drawable
Папки Drawable Android
Android How to set text size and layout according resolution and dpi
Динамическое создание drawable-ресурса Android
Загрузить картинку в Drawable Android
Работа с Drawable Android
Android Icon в Drawable возможно?
Android Drawable
Разместить Drawable посередине EditText Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Ответ Создать тему
Опции темы

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