2012-05-12 39 views
3

我刚刚意识到,在不同版本的Windows中,为了不同的目的,使用了不同大小的图标。例如,在Windows 7中,窗口标题栏中的图标远小于程序的任务栏图标。Java中操作系统的不同图标大小

我发现了Which icon sizes should my Windows application's icon include?非常有用的Windows图标大小的列表,但我不知道如何提供它们,以便Windows可以选择它需要的大小来执行某些任务。

我很感谢任何人对此事的建议或帮助。我不知道自己有多清楚,所以如果任何人想让我澄清任何事情,请不要犹豫,问问。

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

UPDATE:这是我的Java Swing应用程序

+0

顺便说一句 - 你指的是一个Swing或基于AWT GUI,或者是其他东西? –

+0

哦对不起,我正在使用Swing! – Andy

回答

10

参见Window.setIconImages(List)。根据平台功能,可以使用不同尺寸的多个图像中的一个作为窗口的图标。 File Browser GUI线程上有一个例子。这个图像显示了用于GUI的小图标,当窗口之间有alt-tab时,会看到较大的图标。

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

Java Web Start为桌面快捷方式&菜单项提供了多种尺寸图标的类似选项。


回复:命名图片:

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

..它不会对文件名或任何事 - Windows只是采基于图像大小的图标?

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

  • 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.

+0

谢谢你的安德鲁。一如既往,一个明智的答案和很好的例子。只是可以肯定的是,对文件名或任何东西无关紧要 - windows只是根据图像大小选择图标? – Andy

+0

是的,文件名被选择为包含**开发人员的利益的大小信息。**我们可能会调用图像'icon-small.png','icon-medium.png' ..它会工作相同。 JRE将根据加载后测得的实际图像大小来选择。不过,我强烈建议在图标图像名称中添加像-16x16这样的东西,以使其变得清晰。随着时间和各种设备的变化,“小图标”的大小会发生变化。 ;) –

+0

感谢您的确认。无论如何,我打算将文件大小包含在文件名中,但我只是在检查。只是好奇心,当你不提供多种尺寸时会发生什么? – Andy

2

如果使用SWT开发Java应用程序,你可以设置在壳图像阵列。

+0

图片必须包含什么样的格式,顺序和/或名称。“壳”上的含义 – Andy

+0

您看起来像使用swing来开发Java应用程序。 请使用API​​:Window.setIconImages(List) – user1112699

+0

是的。对不起,我没有在我的问题中包含那些细节。我正在使用Swing。安德鲁汤普森的回答是帮助我的权利,但非常感谢你的。 – Andy

相关问题