这可能听起来像是Set maximum size for JavaFX ImageView的副本,但它有所不同。
我想限制ImageView的最大大小。不幸的是,设置ImageView大小的唯一方法似乎是fitWidth和fitHeight,如果它小于拟合值,它会放大图像。
我尝试将fitWidth / fitHeight设置为0/0并将ImageView包装到设置了maxWidth的窗格中 - 没有成功(图像以原始大小显示)。
对我而言似乎JavaFX无法实现,但我无法相信。但我在网上找不到任何东西。这有什么技巧/错误/解决方法吗?
答案 0 :(得分:1)
如果您不希望图像伸展,可以使用:
setPreserveRatio(true);
然后您可以根据需要调整宽度和高度 ImageView setPreserveRatio javadoc
<小时/> 在这个方法的javadoc中,还有缩放规则
答案 1 :(得分:0)
您只需添加if语句即可将大于maxsize的值设置为固定大小。其余的将保持其原始大小。
ImageView im = new ImageView();
im.setImage(image);
im.maxHeight(690 - 10);
int yoursize = 690;
if(im.maxHeight(690 - 10)> yoursize ){
im.setFitHeight(690- 10);
System.out.println("Fix Size : 690 ");
}
im.setPreserveRatio(true);
im.setSmooth(true);
im.setCache(true);
答案 2 :(得分:0)
您可以获取实际的Image资源并查询其宽度/高度以用于拟合值:
Image image = imageView.getImage();
double nativeWidth = image.getWidth();
double nativeHeight = image.getHeight();