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

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

Войти
Регистрация
Восстановить пароль
 
korshun84
17 / 72 / 15
Регистрация: 08.07.2014
Сообщений: 378
#1

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

04.02.2016, 12:32. Просмотров 569. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2016, 12:32     Поясните про поддержку разных экранов
Посмотрите здесь:
Про DPI экранов Android
Dimens для разных экранов Android
Разметка для разных экранов Android
Подскажите как сделать разметку для разных экранов Android
Как установить программного ориентацию для разных экранов? Android
Android Какого размера делать персонажа для разных экранов Android?
Android CustomView разные изображения для разных экранов - одна система координат - Как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
04.02.2016, 12:44     Поясните про поддержку разных экранов #2
korshun84, как всё запущено. Вы действительно хотите делать разные разметки под разные разрешения? По-моему, там это то ли устарело, то ли обычно решается через атрибуты из dimens.xml.

Добавлено через 56 секунд
И, может быть, виновато не разрешение, а плотность.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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
17 / 72 / 15
Регистрация: 08.07.2014
Сообщений: 378
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
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
04.02.2016, 12:55     Поясните про поддержку разных экранов #5
Цитата Сообщение от korshun84 Посмотреть сообщение
. 1080х1920, (!!!!)480dpi - вылез обычный layout, wtf ??? o_O
если не поргуливал геометрию то можно посчитать что при плотности 480 точек диагональ экрана 1080х1920 будет 4.5 дюйма
korshun84
17 / 72 / 15
Регистрация: 08.07.2014
Сообщений: 378
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 ?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
04.02.2016, 13:18     Поясните про поддержку разных экранов #7
профиль устройства или скриншоты где видно его параметры в студию
korshun84
17 / 72 / 15
Регистрация: 08.07.2014
Сообщений: 378
04.02.2016, 13:27  [ТС]     Поясните про поддержку разных экранов #8
Ловите.
Миниатюры
Поясните про поддержку разных экранов  
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
04.02.2016, 13:36     Поясните про поддержку разных экранов #9
стоп стоп
считаем диагональ этого устройства
d = sqrt( 768*768 + 1280*1280)
d ~ 1492 точки
при плотности 160 dpi (mdpi) получаем диагональ 9,325 дюйма

это разьве не xlarge ?
korshun84
17 / 72 / 15
Регистрация: 08.07.2014
Сообщений: 378
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

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

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

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

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

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