如何实现缩小画面的效果?



我想隐藏一张在JavaFX应用程序舞台上的图片。我希望它通过缩小而消失。

假设有一些:

@FXML
private ImageView iv;
private Image img = new Image(...);

实际img大小为 100x100 像素

然后

iv.setImage(img);
iv.setFitWidth(50);

接下来我做了这样的方法:

private Timeline shrink(ImageView iv)
{
final Timeline animation = new Timeline();
animation.getKeyFrames().addAll(
new KeyFrame(Duration.ZERO,
new KeyValue(iv.fitWidthProperty(), 50)
),
new KeyFrame(Duration.millis(400),
new KeyValue(iv.fitWidthProperty(), 0)
)
);
animation.setCycleCount(1);
animation.play();
}   

所以在那之后,图片在缩小,但它并没有停留在 0 宽度,更糟糕的是,它再次以原来的大小出现:100。

我应该怎么做才能保持收缩?我不想通过setVisibile隐藏它,因为我稍后需要额外的空间来填充一些文本。

好吧,我的错...

0是默认的,所以这就是图片以其原始大小显示的原因。例如,需要将其设置为0.01,然后可能将可见性设置为 false。但我相信有更好更好的方法可以做到这一点。

最新更新