簡體   English   中英

為什么 JavaFX 會自動調整圖像大小?

[英]why does JavaFX automatically resize images?

我有一個 200x200 的圖像。

在此處輸入圖像描述

我將上面的圖像加載到 ImageView 但是當我運行 JavaFX 應用程序時,圖像看起來更大。 我截屏並在 Paint.NET 中打開以確認。

在此處輸入圖像描述

為什么現在的圖像是 348x348? 我嘗試了所有我能想到的將寬度和高度限制為 200x200(下面的示例代碼)。 這個自動調整大小的圖片是我能找到的與我的問題最接近的東西,但我不是為 Android 開發的。

public class ImageTest extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Pane pane = new Pane();
        pane.setPrefHeight(200);
        pane.setPrefWidth(200);
        pane.setMaxHeight(200);
        pane.setMaxWidth(200);

        Image image = new Image(getClass().getClassLoader().getResourceAsStream("images/red square.png"));
        ImageView imageView = new ImageView( image );
        imageView.setImage(image);
        imageView.setFitHeight(200);
        imageView.setFitWidth(200);
        imageView.setPreserveRatio(true);
        imageView.setSmooth(false);
        pane.getChildren().add(imageView);

        Scene scene = new Scene( pane, 200, 200 );
        stage.setScene(scene);
        stage.show();
    }

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

}

加載中的圖像

您可以嘗試加載具有預定義大小的圖像。 默認情況下,它不會保留width:height比:您可以使用

Image image = new Image("images/red square.png", 200, 200, true, false);

您可以在javadocs中查看有關該構建器的信息


使用圖像視圖

ImageView imageView = new ImageView("images/red square.png");
imageView.setPreserveRatio(true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM