ImageView 未调整大小以适合
ImageView not resizing to fit
我将 ImageView
添加到 Pane
(自定义对话框的一部分 window);但是在设置图像时,它被裁剪而不是调整大小。
这是组件的 FXML:
<ImageView fx:id="dialogArt" fitHeight="100.0" fitWidth="100.0" layoutX="180.0" pickOnBounds="true" preserveRatio="true">
<viewport>
<Rectangle2D height="100.0" width="100.0" />
</viewport>
</ImageView>
并且在控制器中(因为图像会在显示时发生变化):
dialogArt.setImage(new Image(new FileInputStream("d:/wire.jpg")));
dialogArt.setFitWidth(100);
dialogArt.setFitHeight(100);
我知道 setFit
在这里是多余的,但我正在尝试不同的东西。对外汇还是比较了解的。
正如 DaveB 在评论中指出的那样:
Take out the viewport stuff. Once you put in a viewport, then it just scales the size of the viewport.
查看 viewport documentation 以了解为什么您不想在这种情况下使用视口:
- If viewport is null, the entire image is displayed.
- If viewport is non-null, only the portion of the image which falls within the viewport will be displayed.
- If the image does not fully cover the viewport then any remaining area of the viewport will be empty.
但是,你想要显示完整的图像,所以你不应该定义视口。
我将 ImageView
添加到 Pane
(自定义对话框的一部分 window);但是在设置图像时,它被裁剪而不是调整大小。
这是组件的 FXML:
<ImageView fx:id="dialogArt" fitHeight="100.0" fitWidth="100.0" layoutX="180.0" pickOnBounds="true" preserveRatio="true">
<viewport>
<Rectangle2D height="100.0" width="100.0" />
</viewport>
</ImageView>
并且在控制器中(因为图像会在显示时发生变化):
dialogArt.setImage(new Image(new FileInputStream("d:/wire.jpg")));
dialogArt.setFitWidth(100);
dialogArt.setFitHeight(100);
我知道 setFit
在这里是多余的,但我正在尝试不同的东西。对外汇还是比较了解的。
正如 DaveB 在评论中指出的那样:
Take out the viewport stuff. Once you put in a viewport, then it just scales the size of the viewport.
查看 viewport documentation 以了解为什么您不想在这种情况下使用视口:
- If viewport is null, the entire image is displayed.
- If viewport is non-null, only the portion of the image which falls within the viewport will be displayed.
- If the image does not fully cover the viewport then any remaining area of the viewport will be empty.
但是,你想要显示完整的图像,所以你不应该定义视口。