像素(px)
Pixel的缩写,是指基本原色素及其灰度的基本编码。构成图像的最小单位。
屏幕尺寸(in)
按屏幕对角测量的实际物理尺寸。
分辨率
屏幕上物理像素的总数。
屏幕密度(dpi)
每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富。
计算公式:
Android 将所有屏幕密度分组为六种通用密度: 低、中、高、超高、超超高和超超超高:
- ldpi(低)~120dpi
- mdpi(中)~160dpi
- hdpi(高)~240dpi
- xhdpi(超高)~320dpi
- xxhdpi(超超高)~480dpi
- xxxhdpi(超超超高)~640dpi
等式:
低:中:高:超高:超超高:超超超高=3:4:6:8:12:16
- 36x36 (0.75x) 用于低密度
- 48x48(1.0x 基线)用于中密度
- 72x72 (1.5x) 用于高密度
- 96x96 (2.0x) 用于超高密度
- 144x144 (3.0x) 用于超超高密度
- 192x192 (4.0x) 用于超超超高密度
<pre><code>
float scale = getResources()
.getDisplayMetrics().density;</code></pre>
DisplayMetrics.density
字段根据当前屏幕密度指定 将 dp单位转换为像素必须使用的缩放系数。 在中密度屏幕上,DisplayMetrics.density等于 1.0;在高密度屏幕上,它等于 1.5;在超高密度屏幕上,等于 2.0; 在低密度屏幕上,等于 0.75。
密度无关像素(dp)
密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。
- 超大屏幕至少为 960dp x 720dp
- 大屏幕至少为 640dp x 480dp
- 正常屏幕至少为 470dp x 320dp
- 小屏幕至少为 426dp x 320dp
sp
与dp类似
使用sp作为字体大小单位,会随着系统的字体大小改变。