Java中操作系统的不同图标大小

And*_*ndy 3 java windows macos icons swing

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

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

如果有任何关于此事的建议或帮助,我将不胜感激.我不知道自己有多清楚,所以如果有人要我澄清任何事情,请不要犹豫.

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

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

And*_*son 10

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

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

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


Re:图片命名:

  1. fb-icon-16x16.png FM-图标16x16.png
  2. fb-icon-32x32.png FM-图标32x32.png

..在文件名或任何内容上无关紧要 - 窗口只根据图像大小选择图标?

是的,选择文件名以包含用于开发人员利益的大小信息.我们可能会调用这些图片:

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

..它会起作用.JRE将根据加载后测量的图像的实际大小进行选择.但我强烈建议添加类似于-16x16图标图像名称的内容以使其明确."小图标"的大小随着时间和设备的变化而变化.

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

JRE或系统将根据不在开发人员控制范围内的算法缩放一个图像.例如如上所述.

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

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

OTOH,AFAIU OS X不显示框架图标.通过设计决定.我不知道是否会导致图标根本不显示.你需要Mac的建议.大师更好的信息.在那.

由于系统自己(不一定是最佳)决定如何缩放图标,因此最好尽量少抓住机会,并尝试为每个平台提供合适尺寸的图标.如果他们有一个共同的大小或3,你很幸运.

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