Если вы хотите растянуть изображение, чтобы заполнить все Region
, вы должны использовать:
// Side note: Are you sure having "main/resources" in the path is correct?
var image = new Image("main/resources/images/jxoPOUxa.gif", true);
var bgImage = new BackgroundImage(
image,
BackgroundRepeat.NO_REPEAT,
BackgroundRepeat.NO_REPEAT,
BackgroundPosition.DEFAULT,
new BackgroundSize(1.0, 1.0, true, true, false, false)
);
mainPain.setBackground(new Background(bgImage));
Два true
аргумента BackgroundSize
означают width
и height
аргументысоответственно пропорциональны, а не абсолютны.В таком случае width
и height
должны находиться в диапазоне [0.0, 1.0]
, иначе называемом от 0% до 100%.Два false
аргумента - contain
и cover
, соответственно.Для использования аргументов width
и height
они должны быть false
.Другими словами, это говорит JavaFX, чтобы изображение заполняло 100% ширины и высоты Region
.Обратите внимание, что это не будет поддерживать соотношение сторон изображения (см. Ниже).
См. Документацию BackgroundSize
для получения дополнительной информации:
Определяетразмер области, которую BackgroundImage должен заполнить относительно области, которую он разрабатывает.Есть несколько свойств, значения которых имеют приоритет над другими.В частности, есть 4 ключевых свойства: width
, height
, contain
и cover
.Ширина и высота не зависят друг от друга, однако оба взаимодействуют с содержимым и обложкой.
Из спецификации CSS cover
определяется как:
- Масштабировать изображение, асохраняя его внутреннее соотношение сторон (если оно есть) до наименьшего размера, так что его ширина и высота могут полностью покрывать область позиционирования фона.
contain
определяется как:
- Масштабируйте изображение, сохраняя его внутреннее соотношение сторон (если оно есть), до максимального размера, чтобы его ширина и высота могли поместиться в области позиционирования фона.
ИШирина и высота указывают (в абсолютных значениях или процентах) используемый размер.Эти два свойства применяются только в том случае, если оба покрытия и содержат ложные значения.Если оба покрытия и содержат значение true, то будет использоваться покрытие.
Ширина и высота также могут быть установлены на AUTO
, указывая на то, что область должна быть измерена так, чтобы использовать собственный размер изображения, илиесли это не может быть определено, 100%.