我刚刚意识到在不同版本的Windows中,出于不同的目的,使用了不同大小的图标。例如,窗口标题栏中的图标比Windows 7中的程序任务栏图标小得多。
我找到了Which icon sizes should my Windows application's icon include?非常有用的Windows图标大小列表,但我不知道如何提供它们,以便Windows可以选择某些任务所需的大小。
如果有任何关于此事的建议或帮助,我将不胜感激。我不知道自己有多清楚,所以如果有人要我澄清一切,请不要犹豫。
此外,如果有人知道这是否适用于Mac或我如何调整我的代码以使其适用于OS X,请你也告诉我。
更新:这适用于我的Java Swing应用程序
答案 0 :(得分:10)
见Window.setIconImages(List)
。根据平台功能,可以使用不同尺寸的多个图像中的一个作为窗口的图标。 File Browser GUI线程上有一个示例。此图像显示用于GUI的小图标,当在窗口之间进行alt-tabbing时会看到较大的图标。
如果图像不是方形,Windows将填充它。
Java Web Start为多种尺寸的图标提供了类似的选项,可用于桌面快捷方式和菜单项。
Re:图片名称:
fb-icon-16x16.png
fb-icon-32x32.png
..文件名或其他内容无关紧要 - 窗口只根据图片大小选择图标?
是的,选择文件名以包含用于开发人员利益的大小信息。我们可以称之为图像:
icon-small.png
icon-medium.png
..它的工作方式相同。 JRE将根据加载后测量的图像的实际大小进行选择。但是我强烈建议将-16x16
之类的内容添加到图标图像名称中以使其明确。 “小图标”的大小会随着时间的推移而变化。跨设备。
当您不提供多种尺寸时会发生什么?
JRE或系统将根据不在开发人员控制范围内的算法缩放一个图像。例如如上所述。
如果图像不是矩形,Windows将填充它。
我有一个DukeBox播放器,试图选择适用于正在播放的曲目的曲目或专辑封面。它不仅在声音轨迹的顶部显示图像,还将其设置为(单个)帧图标。 Windows(至少)将缩放到大小,并为任何非方形图像填充透明度。 Windows甚至可以处理具有部分透明度的PNG。
OTOH,AFAIU OS X不显示框架图标。通过设计决定。我不知道是否会导致图标根本不显示。你需要Mac的建议。大师更好的信息。在那。
由于系统自己(不一定是最佳)决定如何缩放图标,因此最好尽可能减少机会,&尝试为每个平台提供合适大小的图标。如果他们有一个共同的大小或3,那么你很幸运。
另见: Sizes of frame icons used in Swing Q& A。
答案 1 :(得分:2)
如果使用SWT开发java应用程序,则可以在shell上设置图像数组。