Android了解屏幕尺寸

时间:2015-06-24 07:00:47

标签: android

我有一个模拟器,屏幕分辨率为720X1280,密度为320dpi。

现在,当我使用以下代码找出dpheight,dpwidth和密度

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float density  = getResources().getDisplayMetrics().density;
    float dpHeight = outMetrics.heightPixels / density;
    float dpWidth  = outMetrics.widthPixels / density;

我得到以下值:

06-24 06:47:46.027 D/Density ( 1003): 2.0
06-24 06:47:46.027 D/DPHeight( 1003): 592.0
06-24 06:47:46.027 D/DPWidth ( 1003): 360.0

我无法理解它。有人可以遮挡一些光吗? 我打算开发一个带有大量文本的应用程序,我想适当地设置文本大小,使其看起来一致。

是的,我已经阅读了Google的相关文档 但我无法理解,因此这个问题。

2 个答案:

答案 0 :(得分:4)

Density 2.0是你的朋友。这是基础dpi( 160 dpi = mdpi)乘数。事实上: 320/160 = 2.0

<强> [编辑]

为清楚起见:

If your emulator is    then the density is    which actually is  

xxxhdpi                4.0                    640 dpi
 xxhdpi                3.0                    480 dpi
  xhdpi                2.0                    320 dpi
   hdpi                1.5                    240 dpi
   mdpi                1.0                    160 dpi
   ldpi                0.75                   120 dpi

答案 1 :(得分:0)

2.0是屏幕pixels / dp的比例。因此,要在DP中获取屏幕大小,您需要将其设置为大小(以像素为单位)并将其除以Density(2.0)