动机
自2013年以来,我一直在编写JavaFX应用程序和库的代码,它们的共同点是,我需要找到可以用于它们的良好图标/图形。 作为前Swing开发人员,我首先使用图像文件,GIF或PNG。 通常,我会从IconExperience( www.incors.com )许可类似“ O-Collection”的库。 但是很快对我来说,使用图像文件太痛苦了。
试想一下,您想支持节点的不同伪状态(例如,“悬停”,“按下”,“集中”)。 您最终会为每个州使用相同图标的不同版本。 如果要支持不同大小(小,中,大)或屏幕分辨率(例如Mac上的“ Retina Display”,2x图标),则需要更多文件。 最终,您最终陷入了图像文件的地狱。
刚开始我并不在乎,因为我从框架开发开始。 CalendarFX或FlexGanttFX之类的项目仅需要很少的图标。 因此,将PNG文件用于这些库不是问题。 但是,一旦我开始从事较大的项目,就需要支持数百个图标。
图标字体
幸运的是,我们所有人都已经为该问题提出了解决方案,该解决方案称为“图标字体”。 图标字体的最大优点是所有图标都包含在一个文件中。 这使得在工作区中对其进行管理非常容易。 另一个优点是可以通过CSS设置字体图标的样式。 这样,单个图标可以以许多不同的颜色或大小显示。
最流行的图标字体,至少在开始的时候,是FontAwesome并有一个JavaFX实施叫FontAwesomeFX由延阻止。 我将这个库用于我所有的项目很长时间了,从没想过我需要其他任何东西。 直到我偶然发现了Andres Almiray出色的图书馆“ Ikonli”。 您可以在GitHub上找到它 。 之后,我将其用于所有与JavaFX相关的工作。 对于我的大型应用程序,也对于我的库。
我喜欢Ikonli的地方是,它与现有的JavaFX API无缝集成。 图标只是“文本”节点(duh!)的扩展,它带有可设置样式的属性。 图标本身具有属性,包括图标“代码”,其颜色和大小。 CSS文件中这些属性的名称也遵循约定。 在这里,它们被称为-fx-icon-code

本文介绍了如何在JavaFX应用中使用Ikonli库来管理图标,对比了图标字体与传统图像文件的优势。Ikonli支持多种图标字体,包括Material Design,并提供了备忘单方便选取图标。通过代码示例展示了如何在JavaFX中创建和使用FontIcon,以及如何自定义字体和实现Ikonli处理程序。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



