大家好,
我们正在尝试在 javaFX 中实现密度无关设计。(例如,如果 200 像素的窗口宽度假设在 88 dpi 中占用 20 厘米。如果相同的 200 像素窗口大小的应用程序在不同的 PPI 中运行,则它应该只占用 20 厘米)。但根据 javaFX,场景宽度只有 px 单位。那么javaFX会针对不同的屏幕分辨率自动管理不同PPI中的px吗?
我们通过创建简单的 hello word 应用程序来检查这一点,并将舞台大小设置为 300x275 并以不同的分辨率运行(从操作系统设置中手动更改分辨率)分析场景大小的显示方式不同。那么如何实现密度无关设计。
像 Android 中可用的 dp 单元。
我们尝试将 px 应用于 javaFX 中的 dp 公式。但是很难在 javaFX 中找到 PPI 意味着在 ubuntu getDpi() 方法中,所有分辨率都返回 96。
Screen.getPrimary().getDpi()/96*px;
在这里,我们附上不同屏幕分辨率的屏幕截图。