5

我创建了一个没有屏幕缩放的 AVD,但像素与我的屏幕不匹配。

有什么解决方法吗?

在此处输入图像描述

屏幕配置为 720 宽,但在我的屏幕上显示为 413。

编辑:更多的实验,由@Fallenreaper 回答:

如果我在浏览器中加载 500 像素宽的图像,它仍然比屏幕大(应该是 720 像素宽)。

在此处输入图像描述

这是 500 像素的图像,有两个屏幕截图,向右滚动显示它比 720 像素的屏幕大。

编辑 2:这可能与此http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html有关

4

2 回答 2

4

当您从 启动模拟器时Android Virtual Device Manager,您必须检查Scale display to real size,然后指定Screen Size (in)Monitor dpi计算的Scale1.0(或者0.50如果您在 OSX 上的视网膜显示器上)。

在我的例子中,我指定了 a4.7 in Screen Size和 a 160 Monitor dpi,这产生了 a 0.50 Scale。当我截取我的模拟器的屏幕截图时,它现在是我希望在设备上看到的逐个像素。

-scale 1.0从命令行启动模拟器时,您还可以指定命令行选项。

如果您的模拟器已经在运行,您可以通过发送window scale 1.0. 这对我来说太大了,无法在我的 Retina MBP 上使用。

使用adb devices. 你应该看到这样的输出:

$ adb devices
List of devices attached 
emulator-5554   device

然后,您可以连接到设备并发送缩放命令:

$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
window scale .50
OK
^]
telnet> quit
Connection closed.

您可以使用 netcat 在脚本中执行此操作:

$ echo 'window scale 0.50' | nc localhost 5554
于 2014-04-11T15:44:25.810 回答
0

每个设备都有不同的像素密度,因此如果要将其调整为 1 比 1 的比例,则需要确定设备的像素密度,并与主机的像素密度进行比较……然后相应地进行缩放。

不同的像素密度会导致 1 比另一个大,所以如果你正在设计一个屏幕,你的文本框看起来是正确的,就像 30x 150,但在设备上,30x150 会小得多。

资料来源:我为 WebViews 做 iOS 和 Android Web App Dev,我一直在做这个,因为我每天都在做。

于 2013-08-30T19:45:43.500 回答