根据这些文章:
http://news.kynosarges.org/2015/06/29/javafx-dpi-scaling-fixed
https://twitter.com/michaelsamarin/status/729234779292483584
Java 9 应该在 Swing 中支持高 DPI 显示(自动 DPI 缩放)。我已经在Zulu 9上的Java 9 Early Access +的最后一个版本上对其进行了测试,它可以工作并且看起来非常棒。
我只能解决一件事——高分辨率/视网膜图像加载。
根据上面和下面的文章(链接),它应该使用Apple 名称约定(@2x):
image.png
, image@2x.png
,image@3x.png
等
我测试了这些加载方法:
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("something/image.png"));
和
ImageIO.read(getClass().getResource("/something/image.png"));
但是这些都不起作用(唯一的基础图像被加载和模糊)。
根据这个:
第一种方法应该是有希望的。
有没有人有这方面的经验(使用 Swing 甚至 JavaFX)?我不确定我是不是做错了什么,或者这个功能目前还没有在 Java 9 的当前预发布版本中实现。
更新:
应该是可能的:
我还尝试了以下命名约定(在此处描述):
Windows : image.scale-<dpi-value>.png (image.scale-140.png)
Linux : image.java-scale2x.png
Mac : image@2x.png and image.java-scale2x.png
但是,我找不到任何可行的解决方案或官方信息。我不明白 - hdpi 显示器在今天很常见,Java 应用程序看起来就像...。