Хелпикс

Главная

Контакты

Случайная статья





Определение размеров



Определение размеров


       Android – очень фрагментированная система. Это означает, что устройства, работающие на ОС Android имеют различные размеры, разрешения и соотношения сторон, форм-факторы, железную начинку, сенсоры, вендорский софт и версии ОС.

       В этом занятии мы уделим внимание разделению экранов. Давайте немного разберемся с терминологией.

Размер экрана – это физический размер экрана, измеряется диагональ.
Для удобства, Android группирует все существующие размеры экранов в 4 общие группы:

● маленькие – small,

● обычные – normal,

● большие – large,

● очень большие extra-large.

 

       Плотность экрана – количество пикселей на определенной площади экрана, обычно определяется как количество точек на дюйм (dpi – dots per inch).
Для удобства, Android группирует все существующие плотности экрана в 6 общих групп:

● ldpi (low) ~120dpi

● mdpi (medium) ~160dpi

● hdpi (high) ~240dpi

● xhdpi (extra-high) ~320dpi

● xxhdpi (extra-extra-high) ~480dpi

● xxxhdpi (extra-extra-extra-high) ~640dpi      


       Разрешение экрана – суммарное количество пикселей на экране. Приложения не должны работать с разрешением экрана напрямую, вместо этого они работают с размером и плотностью.

 

Для наглядности, можно рассмотреть следующую схему из документации:

 

 

       Для того чтобы интерфейс был более-менее идентичен на различных экранах, были придуманы так называемые пиксели, не зависящие от плотности, или dp (дипы).
dp рассчитываются по формуле:
dp = длина в пикселях * 160 / плотность экрана
Следовательно, на экране с плотностью 160 точек на дюйм, 1 dp = 1 px.

И наоборот, чтобы из dp получить пиксели, нужно воспользоваться формулой
px = dp * плотность экрана / 160
Так, на экране с плотностью 240 dpi, 100 dp будут занимать 150 px.

Было бы неправильно, сказав о дипах, не упомянуть о других единицах измерения.

px – пиксели, в них чаще всего указывается разрешение экрана (например. 1920х1080). Элементы интерфейса нежелательно указывать в пикселях, но разумеется, они будут выглядеть по разному, могут иметь различный размер на разных экранах. С другой стороны, именно в пикселях возвращают значения методы getWidth() и getHeight(), поэтому полностью избежать работы с пикселями проблематично.

in – inch, дюйм – примерно 2,54 см, именно в них указываются размеры диагонали экрана. Тоже не рекомендуется использовать, студия подсказывает, что точность не гарантируется на всех устройствах.

mm – миллиметр – 0,1 см, тоже не рекомендуется по причине точности.

pt – point, точка – 1/72 дюйма, опять же физическое расстояние.

 

Но крайне рекомендуется использовать именно dp, чтобы ваша верстка выглядела более менее одинаково на всех экранах.
Также нужно сказать и про другую единицу измерения, sp.
sp – это пиксели, не зависящие от масштаба, главным образом применяются при указании размеров шрифтов текста. Преимущество sp в том, что они учитывают пользовательские настройки размера текста.

 

Документация

https://developer.android.com/guide/practices/screens_support.html



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.