我正在尝试创建一个启动屏幕,就像我提供的示例一样。
似乎 AnchorPane 不允许透明背景,我尝试将 AnchorPane
的 css 设置为 -fx-background-color: rgba(255,0,255,0.1) ;
但白色背景仍然出现。
我的 fxml 文件中只有一个带有 ImageView 的 AnchorPane,其中包含 png 图像
我到处寻找,但找不到任何解决方案,任何帮助将不胜感激。谢谢
最佳答案
试试这个JavaFX splash sample为 Stackoverflow 问题创建:Designing a splash screen (java) .还有一个 follow up sample它还提供应用程序初始化进度反馈。
JavaFX 确实提供了 Preloader从splash到application的平滑传输接口(interface),但是上面的示例没有使用它。
上面的splash示例也没有做透明效果,但是这个dialog sample向您展示如何做到这一点,您可以将其与之前的启动示例结合起来以获得您想要的效果。
透明效果的创建者:
stage.initStyle(StageStyle.TRANSPARENT)
.scene.setFill(Color.TRANSPARENT)
.- 确保您的根节点不是不透明的方形矩形。
这些都在 Sergey 的示例中得到了证明。
相关问题:
根据其他问题更新 2016 年 4 月
the preloader image isnt in the foreground. I have tried stage.toFront(), but doesnt help.
在 Java 8u20 中创建了一个新 API stage.setAlwaysOnTop(true) .我更新了linked sample在初始启动屏幕上使用它,这有助于更平滑地过渡到主屏幕。
对于 Java8+
对于 modena.css(Java 8 中的默认 JavaFX 外观定义),为所有控件引入了轻微的阴影背景(如果加载了控件,还引入了 Pane )。
您可以通过指定默认背景为透明来删除它。这可以通过将以下行添加到应用程序的 CSS 文件来完成:
.root { -fx-background-color: transparent; }
如果您愿意,您可以使用 CSS 样式类和规则或 setStyle 调用(如 Sergey 的回答中所示)来确保该设置仅适用于您的初始屏幕的根目录,而不是您的所有应用屏幕。
查看相关:
关于java - 如何在 JavaFX 中创建具有透明背景的启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14972199/