SWT(或 JFace)是否有将常规单位转换为相应比例单位的公共便利方法?我发现提到了一个DPIUtil
类,但它是内部命名空间的一部分
如果没有可用的便捷方法,那么是否有可靠的方法来访问缩放级别?我看到有Device#getDeviceZoom()但它是受保护的。有设备#getDPI()是公共的,所以可能是有用的。这是否考虑了缩放,还是天真并宣布 DPI 为 96?
我正在对某些面板应用默认大小提示,我希望它们考虑显示器缩放设置。例如,在常规显示器上说我希望默认值为 300 像素,但在 150% 缩放时我想将其计算为 450 像素。计算显然很简单,但我需要乘数。
注意:这与我之前的问题如何利用 SWT 对图标的 Hi-DPI 支持相关但不同?因为 SWT 提供了专门处理图像的类。
除了 DPIUtil 之外,我还没有找到任何用于确定比例(缩放)因子的方法。
但您通常不需要这些信息。指定 300 像素的大小将被 SWT 在 150 缩放设备上自动缩放到 450 像素(并且将使用您提供的任何 150 缩放图像)。我有一台带有两个屏幕的 iMac - 一个 5k 屏幕缩放为 200,一个 2.5k 屏幕未缩放 - SWT 应用程序在两者上显示的大小相同。
缩放实际上是在操作系统中完成的,而不是在 SWT 中完成的(至少它在 macOS 上是这样工作的)。操作系统按比例放大尺寸,以更高分辨率呈现字体并使用高分辨率图像(如果可用)。所以程序除了提供高分辨率图像之外不需要做任何事情。
这样,即使是不知道缩放显示的旧程序仍然以合理的大小出现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句