我有一个 200x200 的图像。
我将上面的图像加载到 ImageView 中,但是当我运行 JavaFX 应用程序时,图像显得更大。我截取了屏幕截图并在 Paint.NET 中打开它进行确认。
为什么图像现在是 348x348?我尝试了所有我能想到的将宽度和高度限制为 200x200 (下面的示例代码)。这个Images automatically resized帖子是我能找到的与我的问题最接近的内容,但我不是为 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 中查看有关该构建器的信息
<小时/>与image view使用:
ImageView imageView = new ImageView("images/red square.png");
imageView.setPreserveRatio(true)
关于java - 为什么 JavaFX 会自动调整图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61262429/