SWT:获取其他尺寸的系统图标版本

时间:2019-01-13 22:49:25

标签: java swt

某些系统图标具有不同大小的选择(大概是.ico或.icns文件)。在SWT中,我能够获取某些状态的默认图标,例如ICON_INFORMATIONICON_WARNING等。

我想获得使用不同大小的该图标的版本。例如,当我使用以下代码获取ICON_INFORMATION时,图标的大小为32x32。

Label icon = new Label(parent, SWT.NONE);
icon.setImage(Display.getCurrent().getSystemImage(SWT.ICON_INFORMATION));

在彩色背景上(与INHERIT_FORCE混合使用以避免出现白框),该图标看起来像这样(在Windows 7系统上):

Windows default information icon

假设我想要此图标的16x16版本。我发现,提取图像数据并自行调整大小会使图标的质量低于系统上其他位置使用的图标。

如果我将图标的大小调整为16x16,则质量看起来像这样:

Scaled icon

我追求的质量的一个示例就像来自Windows本机功能的16x16图标:

Windows update information icon 16x16

在这种情况下,显然Windows本身使用的那个看起来更好。有什么方法可以获取吗?还是我唯一坚持调整大小的最佳方法?是否可以将系统图标作为大小不同的Image数组来获得?

0 个答案:

没有答案