首先理解一下像素和分辨率的关系:
px:像素,是指由在一个数字序列表示的图像中的一个最小单位。
分辨率:是屏幕图像的精密度,指显示器能显示的像素的多少,显示器可显示的像素越多,画面就越精细。
常见的像素值
相机所说的像素,其实是最大像素的意思,像素是分辨率的单位,这个像素值仅仅是相机所支持的有效最大分辨率。
30万 640×480
50万 800×600
80万 1024×768 5” (3.5×5英寸)
130万 1280×960 6” (4×6英寸)
200万 1600×1200 8”(6×8英寸) 5”(3.5×5英寸)
310万 2048×1536 10”(8×10寸) 7”(5×7英寸)
430万 2400×1800 12”(10×12英寸) 8”(6×8英寸)
500万 2560×1920 12”(10×12英寸) 8”(6×8英寸)
600万 3000×2000 14”(11×14英寸) 10”(8×10寸)
800万 3264×2488 16”(12×16英寸) 10”(8×10寸)
1100万 4080×2720 20”(16×20英寸) 12”(10×12英寸)
1400万 4536×3024 24”(18×24英寸) 14”(11×14英寸)
以上都是大约尺寸。
PPI:屏幕像素点密度,表示在水平的和垂直的方向上,每英寸距离的图像包含的像素数目。ppi越高,代表显示屏能够以越高的密度显示图像,密度越高,拟真度就越高。
ppi的计算方式:
(X:长度像素数;Y:宽度像素数;Z:屏幕尺寸即对角线长度)
dp:1dp表示在屏幕像素点为160ppi时1px的长度。
dp和px的换算方式:
dp*ppi/160=px eg:1dp*320ppi/160=2px
dp/px=ppi/160
android 手机屏幕密度等级和屏幕逻辑尺寸:
像素密度等级 | 等级像素密度 | 逻辑像素密度 | 屏幕像素 | 屏幕尺寸(inch) | 宽逻辑尺寸(dp单位) | 真实像素密度 | 设备型号 |
---|---|---|---|---|---|---|---|
ldpi-0.75 | 120 | 120 | 240*320 | 2.7 | w320dp | 140.55 | |
mdpi-1 | 160 | 160 | 320*480 | 3.2 | w320dp | 180.27 | |
hdpi-1.5 | 240 | 240 | 480*800 | 3.4 | w320dp | 274.39 | |
xhdpi-2 | 320 | 320 | 720*1280 | 4.65 | w360dp | 315.6 | |
xhdpi-2 | 320 | 320 | 768*1280 | 4.65 | w384dp | 321 | Nexus4 |
xxhdpi-3 | 480 | 480 | 1080*1920 | 4.95 | w360dp | 445 | Nexus5 |
xxhdpi-3 | 480 | 420 | 1080*1920 | 5.2 | w411dp | 423 | Nexus5X |
xxxdpi-4 | 640 | 560 | 1440*2560 | 5.96 | w411dp | 493 | Nexus6/6P |
sp和dp的关系:
一般情况下,我们认为dp=sp,但是它们之间也有区别。
在设置字体时,我们习惯使用sp,因为使用sp作为字体大小单位,会随着系统的字体大小改变,而dp作为单位则不会。
关于sp, 文档 的描述为:
Scale-independent Pixels – This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.
大致意思为
sp除了受屏幕密度影响外,还受到用户的字体大小影响
通常情况下,建议使用sp来跟随用户字体大小设置
因此通常情况下,我们还是建议使用sp作为字体的单位,除非一些特殊的情况,不想跟随系统字体变化的,可以使用dp.