JavaFX:最大ImageView大小

时间:2015-07-06 20:43:55

标签: javafx

这可能听起来像是Set maximum size for JavaFX ImageView的副本,但它有所不同。

我想限制ImageView的最大大小。不幸的是,设置ImageView大小的唯一方法似乎是fitWidth和fitHeight,如果它小于拟合值,它会放大图像。

我尝试将fitWidth / fitHeight设置为0/0并将ImageView包装到设置了maxWidth的窗格中 - 没有成功(图像以原始大小显示)。

对我而言似乎JavaFX无法实现,但我无法相信。但我在网上找不到任何东西。这有什么技巧/错误/解决方法吗?

3 个答案:

答案 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();