我有一个模拟器,屏幕分辨率为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的相关文档 但我无法理解,因此这个问题。
答案 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)