我编写了一个SWT Java应用程序,并希望将其配置为在OSX基座中使用高质量图标。这是我目前的代码:
// Prepare window
final Shell window = new Shell();
// Load icons
Display display = window.getDisplay();
ClassLoader loader = InTraceStandaloneUI.class.getClassLoader();
InputStream is16 = loader.getResourceAsStream(
"org/intrace/icons/intrace16.gif");
Image icon16 = new Image(display, is16);
is16.close();
InputStream is32 = loader.getResourceAsStream(
"org/intrace/icons/intrace32.gif");
Image icon32 = new Image(display, is32);
is32.close();
window.setImages(new Image[] {icon16, icon32});
这适用于加载16x16和32x32徽标,这些徽标在Windows上看起来不错,但OSX使用的徽标看起来仍然非常像素化。我只需要指定具有更高分辨率的第三个版本,还是应该使用不同的图像格式或API?
答案 0 :(得分:5)
实际上,如果你调用Shell.setImages(...)并包含一个128x128图标,那么这将由OSX选择,你可以获得一个高质量的停靠图标,而无需使用Apple扩展类。
答案 1 :(得分:3)
您可以检测OSX并使用Apple Java Extensions并致电Application.setDockIconImage(...)
答案 2 :(得分:1)
不应使用
在Info.plist中引用停靠图标<key>CFBundleIconFile</key>
<string>icon.icns</string>
行?