17

我想测试我的应用程序对dpi 设置的反应。我不只是指 120dpi。我想测试更高的 dpi 设置,例如:

  • 150dpi
  • 300dpi
  • 600dpi
  • 1000dpi
  • 1200dpi

我的开发机器的显卡无法达到 300dpi(甚至 150dpi)所需的分辨率。

假设界面设计为“适合”在具有 768 行(例如 1024x768)的显示器上,更高 dpi 设置所需的分辨率为:

             Normal      Wide-Screen         Frame Buffer
  dpi     Resolution    Resolution    Zoom    Size (MiB)
=======  ============  ============  ======  ============ 
   96     1024 x  768   1280 x  768    100%      3.75     
  113     1200 x  900   1440 x  900    117%      4.96     
  120     1280 x  960   1536 x  960    125%      5.63
  131     1400 x 1050   1680 x 1050    137%      6.73
  150     1600 x 1200   1920 x 1200    156%      8.70
  300     3200 x 2400   3840 x 2400    313%     35.26
  600     6400 x 4800   7680 x 4800    625%    140.63
1,000    10667 x 8000  12800 x 8000  1,042%    390.63

即使在 150dpi 时,所需的分辨率也会非常高。

我正在考虑在VirtualPC上运行软件,虚拟机运行6400x4800 - 然后使用VNC连接到虚拟机。然后它可以缩放内容以适合我的显示器。虽然我失去了高 dpi 显示器的保真度,但我至少可以看到它,与之交互(即测试它)。但是 VirtualPC 模拟的 s3 Trio 32/64 视频卡的最高分辨率为1600x1200(即 150dpi)。

我还想知道是否有一些虚拟视频卡驱动程序可以像视频卡一样工作 - 具有高分辨率,但在我的本机桌面上显示自身。

有任何想法吗?


参考

4

5 回答 5

4

如果您的应用程序的布局在 96、120、144、150 dpi 时表现相同,那么我认为没有必要为更高的 DPI 测试它,因为您已经测试过它对于不均匀的 dpi 增量效果很好。

实际上,市场上已经有许多对高 dpi 友好的设置,例如笔记本电脑中 16" 的 1680x1050 15,4" 或 1920x1080 显示器,在 120dpi 时已经显示出像素依赖性问题,并且在 96dpi 时使用起来非常不舒服,所以致力于更高密度的显示支持是有效的。对你有益!

编辑:我一直在想。这可能不是很实时,但也许如果您尝试在窗口中处理WM_PRINTWM_PRINTCLIENT消息并将其打印到文件中,或者至少尝试使用打印机设置显示它们的打印预览?突然间,我们至少达到 300dpi。只是一个想法。

于 2009-07-14T17:56:31.560 回答
4

我刚刚用VirtualBox试过这个可以报告以下内容:

  • 使用 Windows XP 主机我真的不能超过大约 2000 x 2000,指定这些将简单地切换回 800x600
  • 使用 Ubuntu 11.04 主机我可以达到至少4000x4000。

由于 Windows Vista 引入了新的驱动程序模型,如果 Vista/Windows 7 也支持这些高分辨率,我不会感到惊讶。不幸的是,我自己没有 Vista 或 Windows 7 主机来测试它。

必要的步骤如下:

  • 切换到缩放显示模式(使用Host- CHost默认为右键Ctrl)。这将绘制主机显示的缩放版本,因此无需使用 RDP 技巧。它还确保有限的窗口大小不会迫使 VM 降低屏幕分辨率
  • 使用命令行工具VBoxManage指定解析提示

    VBoxManage controlvm "VM Name" setvideomodehint 4000 4000 32
    
于 2011-06-01T08:34:15.977 回答
3

您需要支持 1920 x 1200 的视频卡和显示器。许多用户都有这些,如果您是开发人员,使用它们会很愉快。如果您有 1600 x 1200 并且不想把钱花在新显示器上,那也没关系。除此之外,除非你为皮克斯工作,否则我认为没有必要。

于 2009-07-14T17:35:37.563 回答
1

正如您已经知道的那样,NVidia 和 ATI 显卡都允许您创建自定义分辨率,但在一百万年内永远不会达到 12800 x 8000。只是为了让您了解需要多少内存......它会需要的内存是 1080 (1920x1200) 显卡的 45 倍。但是,您可以做的是获得一个大型喇叭装置并将许多卡链接在一起......即使如此...... 12800 x 8000 将更适合 LINUX 下的客户硬件和驱动程序。

于 2009-07-14T17:41:03.230 回答
0

Windows 不会检查您的显示器是否实际测量到您为其配置的 DPI,因此只需连接最大的显示器并开始切换设置即可。

我很想知道您为什么要测试如此高分辨率,即任何超过 192 的分辨率。如果您确实需要如此高分辨率,那么您肯定可以访问将运行它的硬件吗?

于 2009-07-14T18:03:34.417 回答