您如何利用 SWT 对图标的 Hi-DPI 支持?

How do you utilize SWT's Hi-DPI support for icons?

根据 Eclipse Project Neon - New and Noteworthy,SWT 支持 Hi-DPI 显示器的自动缩放。 SWT 仅支持 "auto-scaling",还是提供其他功能,例如为各种 DPI 或缩放级别定义不同的图像?如果是这样,我需要调查的 类 是什么?

SWT 的 Image 有一个接受 ImageDataProvider 的新构造函数,以便为不同的缩放级别提供图像数据。如果应用程序移动到具有不同 DPI 的显示器或更改缩放级别,将要求提供者 return 新缩放级别(例如 150 或 200)的图像。

为了完整起见,还有一个ImageFileNameProvider。它的工作方式类似于 ImageDataProvider,但 returns 文件名。

JFace ImageDescriptor createFromFilecreateFromURL 方法查找名称以 @2x@1.5x 结尾的其他图像文件,并将这些文件与创建图像时的 SWT 图像数据提供程序。