使图像与文本一样高

时间:2019-02-21 14:28:13

标签: java user-interface javafx

我有一个Button带有文字和一个ImageView作为图标。图像可能具有任何分辨率。当前,按钮将调整其大小以适合图像,例如如果图片的尺寸为400x400,则其旁边的按钮将很大,文本很小。

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

ImageView img = new ImageView(image);
button = new Button("Some text", img);
button.setStyle("-fx-background-radius: 6em;");

Button with huge image and tiny text

2 个答案:

答案 0 :(得分:1)

会不会想到解决方案如此简单:

m_value

对我有用。 JavaFX有时候很奇怪。如果字体大小可能会发生变化(例如通过CSS样式),请改用绑定:

img.setPreserveRatio(true);
img.setFitHeight(button.getFont().getSize());

答案 1 :(得分:0)

您可以通过设置图像高度

image_view.getLayoutParams().height = YOURHEIGHT

here所述。

我建议将文本大小设置为适当的值,并使用上述命令将图像缩放到相同的高度。

测试是否可以使用em调整图像大小,否则使用cm/inch

如果在设置高度时图像变形有问题,请参阅this thread