Сделать изображение таким же высоким, как текст - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть 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 голосов
/ 21 февраля 2019

Не подумал бы, что решение этой проблемы так просто:

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

помогает мне.JavaFX иногда странно не интуитивно понятен.Если размер шрифта может измениться (например, с помощью стиля CSS), используйте вместо этого привязку:

img.fitHeightProperty().bind(Bindings.createDoubleBinding(() -> button.getFont().getSize(), button.fontProperty()));
0 голосов
/ 21 февраля 2019

Вы можете установить высоту изображения с помощью

image_view.getLayoutParams().height = YOURHEIGHT

, как обсуждено здесь .

Я бы предложил установить размер текста на соответствующее значение и использовать вышеКоманда для масштабирования изображения до той же высоты.

Проверьте, можете ли вы изменить размер изображения с помощью em, в противном случае используйте cm/inch.

Если при настройке возникают проблемы с искажением изображениявысота, см. эту тему .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...