java - 如何检测屏幕方向变化? - Microsoft Surface 上的 JavaFX

标签 java javafx surface-pro

我正在为 Microsoft Surface 编写一个 JavaFX 应用程序,我正在寻找一种方法来检测设备从纵向旋转到横向时的屏幕方向变化,反之亦然。我目前用来检测屏幕方向的方法如下:

window.widthProperty().addListener((obs, oldVal, newVal) -> {
    if((double) newVal < window.getHeight()) {
        setPortraitMode();
    } else {
        setLandscapeMode();
    }
});

此方法适用于手动调整窗口大小。但是,方向更改(设备旋转)不会触发窗口调整大小事件,因此更改布局的方法不会自动触发。

在不监听调整大小事件的情况下检测屏幕方向变化的正确方法是什么?

最佳答案

此问题的解决方案是检查纵横比是否发生变化。我使用的条件:

    if((double) newVal < window.getHeight() || ((double) newVal/visualBounds.getHeight() < 1.5) 

关于java - 如何检测屏幕方向变化? - Microsoft Surface 上的 JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680042/

相关文章:

javascript - 在网页上获取 Surface Pro 3 的高度

java检测何时创建或关闭任何窗口

java - 如何在 Java 中实现构建特定的注解保留

JavaFX Scene Builder 2.0 动态 css 菜单按钮

Command+T 的 JavaFX 组合键(新标签)

JavaFX ListView 被 TextArea 使用 GridPane 覆盖

python - Surface Pro 6 上的 Psychopy : Can touchscreen be used to press AND hold a button similar to a mouse click?

java - 如何知道上传的文件是否是图像

java - 服务器上的实体管理器错误?