Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仿真器HDPI与MDPI与LDPI_Android_Android Emulator - Fatal编程技术网

Android 仿真器HDPI与MDPI与LDPI

Android 仿真器HDPI与MDPI与LDPI,android,android-emulator,Android,Android Emulator,在不同DPI(120、160、240)下启动相同分辨率为480x800的android模拟器时,我认为DPI最高的屏幕的界面元素(图像、按钮等)最小,DPI最低的屏幕的界面元素最大。但事实恰恰相反。我已经包括了一个屏幕截图来演示我的意思 我的模拟器设置是: HDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:240 MDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:160 LDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:120 我使用以下设置启动了每个模

在不同DPI(120、160、240)下启动相同分辨率为480x800的android模拟器时,我认为DPI最高的屏幕的界面元素(图像、按钮等)最小,DPI最低的屏幕的界面元素最大。但事实恰恰相反。我已经包括了一个屏幕截图来演示我的意思

我的模拟器设置是:

HDPI:

  • 皮肤分辨率:480x800
  • 抽象液晶显示器密度:240
MDPI:

  • 皮肤分辨率:480x800
  • 抽象液晶显示器密度:160
LDPI:

  • 皮肤分辨率:480x800
  • 抽象液晶显示器密度:120
我使用以下设置启动了每个模拟器:

  • 按实际尺寸缩放显示
  • 屏幕尺寸:5英寸
  • 监测新闻部:105
  • 比例:0.56

是我做错了什么,还是这是预期的结果?如果是的话,为什么会这样?如果我在Photoshop(查看打印选项)中执行相同的操作,我会得到完全相反的正确结果。

问题原来是简单的数学问题。如果我们把计算DPI的公式取为

dpi = sqrt(height^2 + width^2)/(screen size in inches)
很明显,在运行模拟器时,您不能选择所有三个组件——只有两个,android将计算缺少的组件


根据我上面的原始问题,我指定了一个恒定的分辨率(480x800)和一个恒定的屏幕大小(5英寸)。但是480x800总是产生大约186 DPI的DPI。因此,在这些情况下,强制DPI不同会让Android emulator感到困惑,我认为它放弃了我指定的原始分辨率,并计算了自己的分辨率。

这是意料之中的。Android增加了默认字体大小,以应对更高的DPI。目标是在一定的物理屏幕大小(比如3“)下,字体具有相同的物理大小,无论其分辨率如何。高密度显示器的像素较小,因此,当设置DPI设置较高时,Android需要使用较大的字体来显示与屏幕相同的大小