我创建了启动画面作为Preloader,显示动画GIF图像。问题是GIF卡住了,因为它是在启动主舞台的同一个JavaFX线程上执行的。
当JavaFX线程启动主舞台时,有没有办法顺利显示GIF启动画面?
以前我使用VM参数来显示GIF启动画面,但是它缺乏调整大小以适应不同屏幕分辨率的灵活性,添加额外的加载/进度信息等。
发射器:
public class Launcher {
public static void main(String[] args) {
LauncherImpl.launchApplication(MainApp.class, SplashPreloader.class, args);
}
}
预加载器(启动画面):
public class SplashPreloader extends Preloader {
@Override
public void start(Stage splashScreen) throws Exception {
BorderPane root = new BorderPane();
double width = 500;
double height = 355;
File file = new File("splash.gif");
Image image = new Image(file.toURI().toString());
ImageView splashGif = new ImageView(image);
splashGif.setFitWidth(width);
splashGif.setFitHeight(height);
root.setCenter(splashGif);
splashScreen.initStyle(StageStyle.UNDECORATED);
Scene scene = new Scene(root, width, height);
splashScreen.setScene(scene);
splashScreen.show();
}
}