Android屏幕密度计算

rug*_*ugo 6 android screen

有人可以告诉我Android如何计算屏幕密度?

我的问题是我有一个480x800分辨率和7"对角线屏幕的设备(ODYS Space).如果我计算它的密度,我得到一个133 DPI的值,但Android(2.2和2.3)报告它像"MEDIUM"密度设备(160 DPI).

我正在与多屏幕支持作斗争,所以我认为133 DPI会报告像"LOW"而不是"MEDIUM"所以现在我的屏幕布局看起来非常愚蠢.

我用这样的代码检查设备:

DisplayMetrics dMetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);  
int d=dMetrics.densityDpi;
Run Code Online (Sandbox Code Playgroud)

如果我在配置的虚拟设备(480x800/7"和133 DPI)上运行该代码,那么我得到密度= 120.

在真实设备上为什么会说160呢?

dmo*_*mon 0

如果您查看文档(查找“使用配置限定符”部分),设备将被视为“低 DPI”,直到您达到 120 DPI 左右/以下。