在android应用程序开发中,视图UI设计经常需要考虑分辨率问题。不同机型适配不同的分辨率、密度等。
符号解释——
dpi:像素密度。即每英寸包含的像素点的数量。
px:物理像素。即屏幕上的点。
dp:密度独立像素。一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px。
sp:比例独立像素,与缩放无关的抽象像素。主要用于字体显示。
density DPI | 密度density | ||
---|---|---|---|
ldpi | 120dpi | 1.333 | 0.75 |
mdpi | 160dpi | 1.0(基线密度) | 1.0 |
tvdpi | 213dpi | 0.751 | 1.332 |
hdpi | 240dpi | 0.67 | 1.5 |
xhdpi | 320dpi | 0.5 | 2 |
xxhdpi | 480dpi | 0.333 | 3 |
其中计算公式有:
px = dp * (dpi / 160)
====================================================================================================
android开发过程中,可以用以下代码测试真机分辨率。
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
float density = metric.density;
int densityDPI = metric.densityDpi;