我想在ImageView中居中放置Image。 ImageViews用于列表中图片的缩略图,我使用了固定的视口,其宽度和高度为90,以使其看起来更干净。 图像使用BackgroundLoading,因此在将图像放入ImageView时不知道图像的尺寸。当然,我也不想拉伸(或裁剪)图像。我在加载图像时正在使用preserveRatio。 是否有某种方法可以使图像居中而不是左上方居中?图片的最长边始终为90。
答案 0 :(得分:0)
由于代码太长,无法注释,因此它是:
Image image = new Image(pictureURL, 90, 90, true, true, true)
ImageView imgView = new ImageView(image);
VBox imageSpacingVBox = new VBox();
Pane spaceAbove = new Pane();
spaceAbove.setMinHeight(0);
spaceAbove.setPrefHeight(45);
Pane spaceBelow = new Pane();
spaceBelow.setMinHeight(0);
spaceBelow.setPrefHeight(45);
imageSpacingVBox.setMaxHeight(90);
imageSpacingVBox.setPrefHeight(90);
imageSpacingVBox.setMinHeight(90);
imageSpacingVBox.setMaxWidth(90);
imageSpacingVBox.setPrefWidth(90);
imageSpacingVBox.setMinWidth(90);
imageSpacingVBox.getChildren().addAll(spaceAbove, imgView, spaceBelow);
如果有人有一个更简单,更优雅的解决方案,我很想听听。