我使用Scene Builder开发了JavaFX应用程序。我在节目开始时有一个视频。应用程序是全屏的,视频也是全屏的。我以1920x1080的分辨率制作了应用程序的所有元素。此分辨率的视频看起来不错,但是更改屏幕分辨率时出现问题。
视频分辨率为1920x1080
视频不适合屏幕分辨率。
如何使视频响应屏幕分辨率?
我的应用程序包含“锚定窗格”,视频被放置在该“锚定窗格”中。所有约束都设置为0
这是视频在1920x1080分辨率下的外观:
这是我的视频在1024x768中的显示方式
场景构建器:
@FXML private AnchorPane mainAnchor
@FXML private MediaView media;
@FXML
public void initialize(URL location, ResourceBundle resources) {
//make video responsive to screen resolution
media.setFitWidth(mainAnchor.getWidth());
media.setFitHeight(mainAnchor.getHeight());
mp = new MediaPlayer(new Media(this.getClass().getResource(MEDIA_URL).toExternalForm()));
media.setMediaPlayer(mp);
mp.setAutoPlay(true);
Timeline tm = new Timeline(new KeyFrame(Duration.millis(3000), new KeyValue(media.opacityProperty(), 0.0)));
Timeline tm2 = new Timeline(new KeyFrame(Duration.millis(2000), new KeyValue(grid.opacityProperty(), 1.0)));
Timeline tmScaleX = new Timeline(new KeyFrame(Duration.millis(200), new KeyValue(media.scaleXProperty(), 0.0)));
Timeline tmScaleY = new Timeline(new KeyFrame(Duration.millis(200), new KeyValue(media.scaleYProperty(), 0.0)));
tm.setDelay(Duration.millis(5500));
tm2.setDelay(Duration.millis(2000));
tmScaleX.setDelay(Duration.millis(9000));
tmScaleY.setDelay(Duration.millis(9000));
tm.play();
tm2.play();
tmScaleX.play();
tmScaleY.play();
}