见Window.setIconImages(List)
。根据平台功能,不同尺寸的几个图像之一可能用作窗口的图标。文件浏览器 GUI线程上有一个示例。此图显示了用于 GUI 的小图标,在窗口之间使用 alt-tab 键时可以看到较大的图标。
如果图像不是正方形,Windows 将填充它。
Java Web Start为用于桌面快捷方式和菜单项的多种图标大小提供了类似的选项。
回复:图片名称:
fb-icon-16x16.png
fb-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中使用的框架图标大小。