在JavaFX中设置渲染效果

时间:2015-10-17 14:50:14

标签: java animation javafx

我正在构建一个应该在我的RaspberryPi上运行的JavaFX应用程序,它有一个7"显示附件。 为了更好的样式,我试图动画javafx.scene.effect.GaussianBlur - 效果。

我得到了它"工作"虽然目前表现非常差(动画期间的FPS很低)(在我的笔记本电脑上,甚至没有说到Pi)。请参阅下面的代码。

有更高效的方法吗?或者这些效果是不是应该动画?

GaussianBlur blur = new GaussianBlur(0);
backgroundPane.setEffect(blur);
DoubleProperty value = new SimpleDoubleProperty(0);
value.addListener((observable, oldV, newV)->
{
     blur.setRadius(newV.doubleValue());
});

Timeline timeline = new Timeline();
final KeyValue kv = new KeyValue(value, 30);
final KeyFrame kf = new KeyFrame(Duration.millis(200), kv);
timeline.getKeyFrames().add(kf);
timeline.play();

仅供参考:bakcgroundPlane在此阶段只是一个通过CSS添加背景图片的窗格:

.background
{
    -fx-background-image: url("images/bg.png");
    -fx-background-repeat: stretch;
    -fx-background-size: 800 480;
    -fx-background-position: center center;
}

编辑: 这个问题似乎与CSS无关。当我在FXML中设置图像时,它仍然会发生......

1 个答案:

答案 0 :(得分:1)

您是否尝试过enable cachingset the cache hint to speedy

那些通常会对性能产生巨大影响。在我的一个小jfx游戏中,它是可玩的"之间的区别。和单个数字fps值。