如何拉伸图像以使其适合javafx中的整个屏幕

时间:2015-04-04 18:48:24

标签: java image javafx

相关代码

package whowantstobeamillionairetriviagame;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundImage;
import javafx.scene.layout.BackgroundPosition;
import javafx.scene.layout.BackgroundRepeat;
import javafx.scene.layout.BackgroundSize;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class WhoWantsToBeAMillionaireTriviaGame extends Application 
{   
@Override
public void start(Stage startingStage) throws Exception
{    
    Image backgroundColor = new Image("http://www.sonomare.com/darkblue_background_rot_180.jpg");

    BackgroundSize backgroundSize = new BackgroundSize(100, 100, true, true, true, false);
    BackgroundImage backgroundImage = new BackgroundImage(backgroundColor, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, backgroundSize);

    StackPane background = new StackPane();
    background.setBackground(new Background(backgroundImage));

    Scene menuScene = new Scene(background);
    startingStage.setScene(menuScene);
    startingStage.setFullScreen(true);
    startingStage.show();
}

public static void main(String[] args) 
{
    launch(args);
}
}

我问,因为使用重复将导致图片在x和y轴上重复,因此它可以适合整个屏幕。不使用重复会在其周围留下一堆白色空间。圆形,空间和将舞台设置为全屏也无济于事。我能做什么?

1 个答案:

答案 0 :(得分:0)

您可以将背景尺寸设置为封面。

来自文档

  

可以使用cover = true定义大小,这意味着应该拉伸图像以覆盖Region的整个渲染表面。

BackgroundSize的定义变为

BackgroundSize backgroundSize = new BackgroundSize(100, 100, true, true, true, true);