【问题标题】:How to set a high quality OSX dock icon for an SWT Java application如何为 SWT Java 应用程序设置高质量的 OSX 停靠图标
【发布时间】:2011-09-09 09:59:13
【问题描述】:

我编写了一个 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});

https://github.com/mchr3k/org.intrace/blob/master/org.intrace/src/org/intrace/client/gui/InTraceStandaloneUI.java

这适用于加载在 Windows 上看起来不错的 16x16 和 32x32 徽标,但 OSX 使用的徽标看起来仍然像素化。我是否只需要指定分辨率更高的第三个版本,还是应该使用不同的图像格式或 API?

【问题讨论】:

    标签: java macos swt


    【解决方案1】:

    您可以检测 OSX 并使用 Apple Java 扩展并调用 Application.setDockIconImage(...)

    【讨论】:

    • 我应该在这个 API 中使用什么分辨率和图像文件格式?我已经看到讨论过 128x128 和 256x256,但我不确定指定 256x256 是否总是有效?
    • 不知道现在支持的最高分辨率是多少。我会先尝试 128x128...
    • github.com/mchr3k/org.intrace/blob/master/org.intrace/src/org/… - 我的班级现在加载了一个高分辨率徽标。低分辨率图标使用了几秒钟,但我不太在意找出原因。
    • 我想是在启动期间,JVM 已启动,但尚未达到对 setDockIconImage(...) 的调用。如果这回答了您的问题,请接受。
    • 我的猜测是 setDockIconImage(...) 在 UI 启动之前实际上并没有做任何事情。我知道解决所有这些问题的最佳方法是将您的 Java 应用程序打包为 OSX 应用程序。看到这个对话:stackoverflow.com/questions/2695214/…
    【解决方案2】:

    实际上,如果您调用 Shell.setImages(...) 并包含一个 128x128 图标,那么 OSX 会选择此图标,您将获得一个高质量的停靠图标,而无需使用 Apple 扩展类。

    【讨论】:

      【解决方案3】:

      不应该在 Info.plist 中使用停靠图标来引用

      <key>CFBundleIconFile</key>
      <string>icon.icns</string>
      

      行?

      【讨论】:

      • 你是对的,但我试图从一个没有与 info.plist 打包直接启动的 jar 中获得最佳体验。
      猜你喜欢
      • 2012-07-19
      • 2014-08-10
      • 2011-02-09
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 2012-05-29
      • 2011-06-12
      • 1970-01-01
      相关资源
      最近更新 更多