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

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

Войти
Регистрация
Восстановить пароль
 
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
#1

Поясните про поддержку разных экранов - Android

04.02.2016, 12:32. Просмотров 490. Ответов 11
Метки нет (Все метки)

Я туплю или эмулятор глючит ?
В genymotion сделал 3 устройства, что бы поиграться разными layout для разных экранов:
1. 480х800
2. 768х1280
3. 1080х1920
И в тестовом проекте сделал 4 папки с layout: layout-small, layout, layout-large и layout-xlarge и запустил приложение на всех эмуляторах.
В итоге:
1. 480х800 - вылез обычный layout, все ок
2. 768х1280 - вылез xlayout, тоже все ок
3. 1080х1920 - вылез обычный layout, wtf ??? o_O
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
04.02.2016, 12:44     Поясните про поддержку разных экранов #2
korshun84, как всё запущено. Вы действительно хотите делать разные разметки под разные разрешения? По-моему, там это то ли устарело, то ли обычно решается через атрибуты из dimens.xml.

Добавлено через 56 секунд
И, может быть, виновато не разрешение, а плотность.
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,218
Завершенные тесты: 1
04.02.2016, 12:49     Поясните про поддержку разных экранов #3
там все завязано на плотность точек
экран 1080 на 1920 может быть 4.7"
поэтому на том виртуально устройстве где 1080х1920 надо проверить дюймы и плотность экрана dpi, она не должна быть большой

во всем известной табличке http://developer.android.com/intl/ru...s_support.html
указаны размеры не в точках, а в dp
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.02.2016, 12:52  [ТС]     Поясните про поддержку разных экранов #4
Я пока делать ничего не собираюсь, мне понять хочется, почему офф. документация говорит одно, а на деле получается чертичто.
http://developer.android.com/guide/p...s_support.html - ни слова, что это устарело. И, если верить написанному по этой ссылке, то плотность тут тоже ни при чем.
Или все таки действительно дело в ней - ткните тогда носом, где там про это пишут.
Заранее благодарю!

Добавлено через 2 минуты
Ок, если дело все-таки в точках, то вопрос все равно остается тот же:
1. 480х800, 240dpi - вылез обычный layout, все ок
2. 768х1280, 160dpi - вылез xlayout, тоже все ок
3. 1080х1920, (!!!!)480dpi - вылез обычный layout, wtf ??? o_O
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,218
Завершенные тесты: 1
04.02.2016, 12:55     Поясните про поддержку разных экранов #5
Цитата Сообщение от korshun84 Посмотреть сообщение
. 1080х1920, (!!!!)480dpi - вылез обычный layout, wtf ??? o_O
если не поргуливал геометрию то можно посчитать что при плотности 480 точек диагональ экрана 1080х1920 будет 4.5 дюйма
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.02.2016, 13:10  [ТС]     Поясните про поддержку разных экранов #6
По ссылке размеры действительно в dp, а не в px, понятно, вопросов нет.
xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

Цитата Сообщение от Паблито Посмотреть сообщение
можно посчитать что при плотности 480 точек диагональ экрана 1080х1920 будет 4.5 дюйма
Хорошо, почему тогда в варианте 768х1280, 160dpi вылез xlayout ?
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,218
Завершенные тесты: 1
04.02.2016, 13:18     Поясните про поддержку разных экранов #7
профиль устройства или скриншоты где видно его параметры в студию
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.02.2016, 13:27  [ТС]     Поясните про поддержку разных экранов #8
Ловите.
Миниатюры
Поясните про поддержку разных экранов  
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,218
Завершенные тесты: 1
04.02.2016, 13:36     Поясните про поддержку разных экранов #9
стоп стоп
считаем диагональ этого устройства
d = sqrt( 768*768 + 1280*1280)
d ~ 1492 точки
при плотности 160 dpi (mdpi) получаем диагональ 9,325 дюйма

это разьве не xlarge ?
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.02.2016, 13:54  [ТС]     Поясните про поддержку разных экранов #10
Кажется начинаю понимать, где именно я тупил

Подитожу, что бы тема у меня больше не поднималась:

Мы знаем коэффициенты масштабируемости:
- low (ldpi) = 0,75
- medium (mdpi) = 1
- tv (tvdpi) = 1,33
- high (hdpi) = 1,5
- extra high (xhdpi) = 2
- extra extra high (xxhdpi) = 3

И знаем какой макет к каким dp относится (офф. документация):
xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

Устройство к примеру 480х800px, 240dpi.
Т.к. плотность тут 240 - это hdpi. 480px \ 1.5 = 320dp
320dp - это normal screens
С 768х1280, 160dpi все проще: т.к. 160dpi - это medium, следовательно коэфф. равен единице и 768px = 768dp, а xlarge screens - это более 720dp

Правильно все понял ?
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,218
Завершенные тесты: 1
04.02.2016, 14:04     Поясните про поддержку разных экранов #11
ну почти так
я бы начинал с начала с вычисления диагонали устройства
диагональ = корню квадратному от суммы квадратов сторон экрана (в пикселях)
получили диагональ в пикселях и теперь уже можно делить на плотность, получаем реальный размер диагонали в дюймах

в той табличке с привязкой размеров к large - xlarge и так далее, речь идет о диагонали устройств
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2016, 14:08     Поясните про поддержку разных экранов
Еще ссылки по теме:

Android CustomView разные изображения для разных экранов - одна система координат - Как?
Как установить программного ориентацию для разных экранов? Android
Генерация цветовых экранов Android
Dimens для разных экранов Android
Подскажите как сделать разметку для разных экранов Android

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

Или воспользуйтесь поиском по форуму:
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.02.2016, 14:08  [ТС]     Поясните про поддержку разных экранов #12
Ясно, спасибо!
Yandex
Объявления
04.02.2016, 14:08     Поясните про поддержку разных экранов
Ответ Создать тему
Опции темы

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