【问题标题】:Low quality icon in taskbar of a Stage. JavaFX阶段任务栏中的低质量图标。 JavaFX
【发布时间】:2015-03-30 20:53:25
【问题描述】:

为什么舞台图标质量这么低?原图好多了。 如何解决?

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

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

截图:

原图标:

【问题讨论】:

  • 提前缩小图标以满足操作系统要求
  • 对不起,我不太明白你的意思。
  • 你的图标是 300x300,任务栏图标是 32x32。您创建一个 32x32 的图标版本,使其看起来像您想要的那样,并且不会通过 JavaFX 或操作系统通过您不知道且无法控制的机制进行缩放

标签: java javafx


【解决方案1】:

更新

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

见:

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

关于这些问题的一些 cmets 是:

确实,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

【讨论】:

  • 我按照你说的做了,但是没有用。我认为问题不在于全局,而在于 JavaFX。我创建了 256x256 => 32x32 图像,当 Windows 图像中的缩放界面变得模糊时。 100%200%300%
  • 是的,请参阅更新的答案:Windows 7 上的 JavaFX 8 实现在选择最佳图标方面存在缺陷 - 尝试在舞台图标列表中仅放置一个 48x48 图标(或作为最后一个舞台图标列表中的元素)。
  • 在 Windows 中,当我单击右键“固定到任务栏”时它们不会停留,这是默认行为吗?以及如何解决?
  • 马丁,这是一个不同的问题。请作为一个新问题提出。
猜你喜欢
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2014-12-08
相关资源
最近更新 更多