像素和单位 px,pt,dp,sp

像素和单位 px,pt,dp,sp

Tags: Android

摘要

像素和单位 px,pt,dp,sp

像素和单位

px和pt是一种固定长度
px是像素的意思.想像把屏幕放大再放大,对!看到的那一个个小点或者小方块就是像素了。比如iPhone5S的分辨率是1136640;Samsung Note3的分辨率是19201080;那么iPhone5S的宽有640个像素点.
pt是用于文字的单位.

现在android设备屏幕分辨率大小不一,所以用px,pt这种绝对大小,就会很难适配多种屏幕. 所以谷歌为 Android引入了一套新的单位 dp和 sp.

dp(dip) ,指的是抽象意义上的像素。跟设备的屏幕密度有关系。
屏幕密度又有另外一个单位表示 dpi,就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。iPhone5S的dpi是326; Samsung Note3 的dpi是386. 怎么计算的呢?

iPhone5S的屏幕尺寸是4英寸(对角线长度),而分辨率是1136 640
很容易算出长宽的英寸大小是 3.4850
1.9634 ,所以每英寸像素数是326

android中单位和尺寸

dp 是密度无关像素的意思,也被称作 dip,和 px 相比,它在不同密度的屏幕中的显示比例将保持一致。

sp 是可伸缩像素的意思,它采用了和 dp 同样的设计理念,解决了文字大小的适配问题。

代码中获取dpi的方式如下

float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;