猿问

使图像与文字一样高

我有一个Button带文本和一个ImageViewas 图标。图像可能具有任何分辨率。目前,按钮会调整其大小以适应图像,例如,如果图像是 400x400,则按钮会很大,而旁边的文本会很小。


不过,我想要的是适合按钮的图像。它应该始终与文本一样高。


ImageView img = new ImageView(image);

button = new Button("Some text", img);

button.setStyle("-fx-background-radius: 6em;");

红糖糍粑
浏览 160回答 2
2回答

侃侃无极

没想到解决方案如此简单:img.setPreserveRatio(true);img.setFitHeight(button.getFont().getSize());对我有用。JavaFX 有时非常不直观。如果字体大小可能发生变化(例如通过 CSS 样式),请改用绑定:img.fitHeightProperty().bind(Bindings.createDoubleBinding(() -> button.getFont().getSize(), button.fontProperty()));分享

慕村225694

您可以通过以下方式设置图像高度image_view.getLayoutParams().height = YOURHEIGHT正如这里所讨论的。我建议将您的文本大小设置为适当的值,并使用上述命令将图像缩放到相同的高度。测试是否可以使用 调整图像大小em,否则使用cm/inch.如果在设置高度时出现图像失真的问题,请参阅此线程。
随时随地看视频慕课网APP

相关分类

Java
我要回答