3

我刚刚意识到,在不同版本的 Windows 中,出于不同的目的,使用了不同大小的图标。例如,窗口标题栏中的图标比程序的任务栏图标小得多,尤其是在 Windows 7 中。

我发现我的 Windows 应用程序的图标应包括哪些图标尺寸?Windows 使用的非常有用的图标大小列表,但我不知道如何提供它们,以便 Windows 可以选择某些任务所需的大小。

我将不胜感激任何人就此事提供的任何建议或帮助。我不知道我说得有多清楚,所以如果有人想让我澄清任何事情,请不要犹豫。

另外,如果有人知道这是否适用于 Mac,或者我如何调整我的代码以使其适用于 OS X,请你也告诉我。

更新:这是针对我的 Java Swing 应用程序的

4

2 回答 2

10

Window.setIconImages(List)。根据平台功能,不同尺寸的几个图像之一可能用作窗口的图标。文件浏览器 GUI线程上有一个示例。此图显示了用于 GUI 的小图标,在窗口之间使用 alt-tab 键时可以看到较大的图标。

如果图像不是正方形,Windows 将填充它。

Java Web Start为用于桌面快捷方式和菜单项的多种图标大小提供了类似的选项。


回复:图片名称:

  1. fb-icon-16x16.png fm-icon-16x16.png
  2. fb-icon-32x32.png fm-icon-32x32.png

..文件名或任何东西都没有关系 - Windows 只是根据图像大小选择图标?

是的,为了开发人员的利益,选择了文件名以包含大小信息。我们可以将图像称为:

  • icon-small.png
  • icon-medium.png

..它的工作原理是一样的。JRE 将根据加载后测量的图像的实际大小进行选择。但是,我强烈建议在图标图像名称中添加类似-16x16名称以使其明确。“小图标”的大小会随着时间和设备的变化而变化。

当您不提供多种尺寸时会发生什么?

JRE 或系统将根据不受开发人员控制的算法缩放一个图像。例如如上。

如果图像不是矩形,Windows 将填充它。

我有一个 DukeBox 播放器,它试图拾取适用于正在播放的曲目的曲目或专辑封面。它不仅在声音轨迹的顶部显示图像,而且将其设置为(单)帧图标。Windows(至少)将缩放到大小,并为任何非方形图像填充透明度。Windows 甚至可以处理具有部分透明度的 PNG。

OTOH,AFAIU OS X 不显示框架图标。由设计决定。我不知道这是否会导致图标根本不出现。你需要 Mac 的建议。大师以获得更好的信息。在那。

由于系统对如何缩放图标做出自己的(不一定是最佳的)决定,因此最好尽可能少地抓住机会,并尝试为每个平台提供正确大小的图标。如果他们有一个共同的大小或 3,你很幸运。

另请参阅:Swing Q&A中使用的框架图标大小。

于 2012-05-12T16:04:25.033 回答
2

如果您使用 SWT 开发 java 应用程序,您可以在 shell 上设置一个图像数组。

于 2012-05-12T15:59:18.267 回答