JavaFX 缩小 ImageView
JavaFX down-size ImageView
我有一个包含矩形和顶部图像的组。我希望矩形可以重新调整大小并且图像应该具有固定大小,但矩形小于图像的情况除外。然后图像应该缩小矩形。
图像也应该始终居中并有一些填充。
我已经完成了大部分这些部分,除了图像的缩小部分。我不知道为什么,但图像根本不会缩小。这就是我得到的。
Group group = new Group()
GeometryNode<Rectangle> rectangle = new GeometryNode<>();
rectangle.setGeometry(new Rectangle(0, 0, 60, 60));
ImageView imageView = new ImageView(image);
imageView.setPreserveRatio(true);
ImageViewPane imagePane = new ImageViewPane(imageView);
imagePane.setMinSize(0, 0);
imagePane.setMaxSize(50, 50);
StackPane stackPane = new StackPane();
stackPane.getChildren().add(rectangle);
stackPane.getChildren().add(imagePane);
group.getChildren().add(stackPane);
您希望 ImageView
的 fitWidth
和 fitHeight
属性随着 StackPane
的尺寸变化而变化。所以你可以做
double padding = ... ;
imageView.setPreserveRatio(true);
imageView.fitWidthProperty().bind(
Bindings.min(stackPane.widthProperty().subtract(padding), image.widthProperty()));
imageView.fitHeightProperty().bind(
Bindings.min(stackPane.heightProperty().subtract(padding), image.heightProperty()));
我有一个包含矩形和顶部图像的组。我希望矩形可以重新调整大小并且图像应该具有固定大小,但矩形小于图像的情况除外。然后图像应该缩小矩形。
图像也应该始终居中并有一些填充。
我已经完成了大部分这些部分,除了图像的缩小部分。我不知道为什么,但图像根本不会缩小。这就是我得到的。
Group group = new Group()
GeometryNode<Rectangle> rectangle = new GeometryNode<>();
rectangle.setGeometry(new Rectangle(0, 0, 60, 60));
ImageView imageView = new ImageView(image);
imageView.setPreserveRatio(true);
ImageViewPane imagePane = new ImageViewPane(imageView);
imagePane.setMinSize(0, 0);
imagePane.setMaxSize(50, 50);
StackPane stackPane = new StackPane();
stackPane.getChildren().add(rectangle);
stackPane.getChildren().add(imagePane);
group.getChildren().add(stackPane);
您希望 ImageView
的 fitWidth
和 fitHeight
属性随着 StackPane
的尺寸变化而变化。所以你可以做
double padding = ... ;
imageView.setPreserveRatio(true);
imageView.fitWidthProperty().bind(
Bindings.min(stackPane.widthProperty().subtract(padding), image.widthProperty()));
imageView.fitHeightProperty().bind(
Bindings.min(stackPane.heightProperty().subtract(padding), image.heightProperty()));