我试图将背景尺寸设置为窗口尺寸。但是,这很挑剔。我没有使用css文件格式。
这是实现窗口的主要部分。
public void start(Stage primaryStage) throws Exception { GameLoopManager loop = GameLoopManager.instance(); Controller controller = new Controller(loop, primaryStage); loop.start(new MenuState()); primaryStage.show(); primaryStage.setFullScreen(true); }
这是实现背景和阶段的身体部位。
private UISubScene optionSubScene; private UISubScene helpSubScene; private UISubScene creditsSubScene; private UISubScene buttonChooserScene; private UISubScene sceneToHide; List<UIButton> menuButtons; List<ButtonPicker> buttonsList; private BUTTON chosenButton; public MenuViewManager(Stage mainStage) { sound.backgroundMusic(); menuButtons = new ArrayList<>(); mainPane = new AnchorPane(); mainScene = new Scene(mainPane); mainScene.setFill(null); mainStage.setScene(mainScene); super.mainStage = mainStage; createSubScenes(); createButtons(); createBackground(); createLogo(); super.mainStage.setOnCloseRequest(new EventHandler<WindowEvent>() { public void handle(WindowEvent we) { controller.stop(); } }); // mainStage.show(); } private void createBackground() { Image backgroundImgae = new Image("main/resources/images/jxoPOUxa.gif",true); BackgroundImage background = new BackgroundImage(backgroundImgae, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, BackgroundSize.DEFAULT); mainPane.setBackground(new Background(background)); }
我厌倦了使用BackgroundSize.AUTO,但是我不能。我应该怎么做才能得到解决方案?
如果可以,我可以使用css格式怎么使用?但是我无法重写和修改很多代码,因为我的工作快完成了,我正在集成和调试。
如果要拉伸图像以填满整个图像,Region则应使用:
Region
// Side note: Are you sure having "main/resources" in the path is correct? var image = new Image("main/resources/images/jxoPOUxa.gif", true); var bgImage = new BackgroundImage( image, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, new BackgroundSize(1.0, 1.0, true, true, false, false) ); mainPain.setBackground(new Background(bgImage));
均值和的两个true参数分别是成比例的而不是绝对的。在这种情况下,and 的范围应为,否则称为0%至100%。这两个参数分别是和。他们必须为和论据来。换句话说,这告诉JavaFX使图像填充的宽度和高度的100%。请注意,这将不会保持图像的纵横比(请参阅下文)。BackgroundSize``width``height``width``height``[0.0, 1.0]``false``contain``cover``false``width``height``Region
true
BackgroundSize``width``height``width``height``[0.0, 1.0]``false``contain``cover``false``width``height``Region
请参阅的文档以BackgroundSize获取更多信息:
BackgroundSize
定义BackgroundImage相对于样式区域应填充的区域大小。有几个属性的值优先于其他属性。特别是有4个关键属性,width,height,contain,和cover。宽度和高度都彼此独立,但是两者都与包含和覆盖相互作用。 从CSS规范cover定义为: 在保留图像固有长宽比(如果有)的情况下,将图像缩放到最小尺寸,以使其宽度和高度都可以完全覆盖背景定位区域。 contain 定义为: 将图像缩放,同时保留其固有的宽高比(如果有),以最大尺寸进行缩放,以使其宽度和高度都可以适合背景定位区域。 宽度和高度均指定(使用绝对值或百分比)要使用的大小。仅当cover和contain为false时,这两个属性才适用。如果Cover和Contain均为true,则将使用cover。 宽度和高度也可以设置为AUTO,指示应该调整区域的大小以使用图像的固有大小,或者如果无法确定,则为100%。
定义BackgroundImage相对于样式区域应填充的区域大小。有几个属性的值优先于其他属性。特别是有4个关键属性,width,height,contain,和cover。宽度和高度都彼此独立,但是两者都与包含和覆盖相互作用。
width
height
contain
cover
从CSS规范cover定义为:
contain 定义为:
宽度和高度均指定(使用绝对值或百分比)要使用的大小。仅当cover和contain为false时,这两个属性才适用。如果Cover和Contain均为true,则将使用cover。
宽度和高度也可以设置为AUTO,指示应该调整区域的大小以使用图像的固有大小,或者如果无法确定,则为100%。
AUTO