2013-11-16 1 views
0

В моем приложении я использую ImageView для отображения изображения. Я не хочу, чтобы изображение искажалось, поэтому я звоню setPreserveRatio(true). Как описано в документации, высота и ширина «могут масштабироваться, чтобы наилучшим образом соответствовать прямоугольнику ширины по высоте при сохранении исходного соотношения сторон». Есть ли возможность получить масштабированную высоту и ширину изображения? Проблема в том, что я не знаю, что считается «наилучшим вариантом».JavaFX ImageView: Можно ли получить размер масштабируемого изображения, если preserveRatio = true?

+2

Я считаю, вы можете получить оценки масштабируемого изображения с помощью imageView.getBoundsInParent(), который считает, что все локальные преобразования. – Matthias

ответ

3

Если бы та же проблема, к счастью, достаточно, вы можете получить границы отображаемого изображения и вычислить соотношение примерно так:

@FXML 
ImageView imageView; 
double getScaleXRatio() 
{ 
    return imageView.getBoundsInParent().getWidth()/imageView.getImage().getWidth(); 
} 

double getScaleYRatio() 
{ 
    return imageView.getBoundsInParent().getHeight()/imageView.getImage().getHeight(); 
}