На сайті розробників Андроїд є вичерпна інформація з даного питання. Всього для завдання розмірів нам доступно 6 різний одиниць: dp, sp, pt, px, mm і in. Давайте розберемося, що вони з себе представляють.
- dp. вони ж dip, вони ж пікселі незалежні від щільності. Це абстрактна одиниця виміру, яка залежить від щільності екрану. Для екрану щільністю 160 dpi один dp дорівнює одному пікселю (px). На екранах з іншою густиною коефіцієнт перерахунку dp в пікселі залежить від його щільності. Наприклад, на екрані щільністю 240 dpi один dp буде дорівнює двом пікселям. У загальному вигляді формула зв'язує dp і px наступна: X [px] = Y [dp] * Z [dpi] / 160 [dpi], де X - значення розміру в пікселях, Y - в dp, Z - щільність екрану пристрою в точках на дюйм
- sp - масштабовані, незалежні пікселі. Один sp дорівнює одному dp, якщо у користувача в системі заданий нормальний розмір шрифтів. Дана одиниця призначена для завдання розмірів шрифтів. Якщо у користувача обраний великий розмір шрифтів, то всі ваші шрифти, розміри яких задані в sp будуть більше, ніж у користувача, у якого в системі обраний нормальний розмір шрифтів.
- pt - точки. Один pt дорівнює 1/72 дюйма (1 pt = 1/72 in)
- px - пікселі. Розмір в реальних пікселях екрану. Через великого розмаїття параметрів розмірів екранів Андроїд пристроїв дану одиницю вимірювань слід застосовувати з обережністю
- mm - міліметри. Визначає фізичний розмір елемента. Наприклад, якщо ви створите кнопку розміром 10х10 мм, то приклавши лінійку до екрану вашого пристрою і, фізично помірявши розмір цієї кнопки, ви отримаєте рівно 10х10 мм.
- in - дюйми. 1 [mm] = 0.0393700787 [in]