在舞台的任务栏中的低质量图标。 JavaFX的

时间:2015-03-30 20:53:25

标签: java javafx

为什么舞台图标质量如此之低?原始图像要好得多。 如何解决?

我使用此代码将图像设置为舞台图标:

stage.getIcons().add(new Image("/res/app_icon.png"));

截图:
Screenshot

原始图标:
Original icon

1 个答案:

答案 0 :(得分:7)

<强>更新

不幸的是,JavaFX 8中图标选择器的实现并不总是从可用图标列表中为应用程序选择最佳图标大小。

请参阅:

这些问题(目前)计划在Java 9中解决。

对这些问题的一些评论是:

  

实际上,Glass目前只支持为一个窗口分配一个图标,它不允许一个人分配一组不同大小的图标。此功能需要在Glass中实现。

-

  

我注意到在设置多个图标时,只使用getIcons()返回的列表中的最后一个图标。如果其他图标具有更好的分辨率,则无关紧要。

如果您提供不同大小的图标列表,请尝试将您希望在列表中最后使用的大小放在列表中(可能将列表从最小到最大排序,或者放置一个48x48图标,这是在Windows 7上的快速启动区域,作为列表中的最后一个或唯一的元素)。不幸的是,我没有访问Windows机器来测试该平台的最佳图标大小。


图标指南(但请注意上述更新中的信息):

  • 在列表中提供一组不同大小的高质量图标 从...返回 stage.getIcons()
  • 运行时将选择最佳拟合大小。
  • 使用标准图标 大多数操作系统可以使用的尺寸,无需进一步缩放(适用于 实例项目大小是2或48x48的幂。
  • 使用高质量的源图像(问题中的原始源图像对我来说似乎有点模糊)。
  • 对于非常小的图标,有时将较大图标的纯粹比例缩小到较小尺寸并不是最好的。有时,图标设计师最好清理并从小图标中删除复杂的细节,这可能在较大的图标中也可以 - 请参阅discussion on icon size on Pushing Pixels以了解原因。
  • 有关this icon handbook中的操作系统使用的图标大小的信息。

stage.getIcons().addAll(
    new Image("/res/app_icon64x64.png"),
    new Image("/res/app_icon32x32.png"),
    new Image("/res/app_icon16x16.png")
);

各种尺寸的高质量图标来源http://www.iconarchive.com,例如this refresh icon