当前位置: 首页 > 知识库问答 >
问题:

JavaFX:最大ImageView大小

陈富
2023-03-14

这听起来可能像是JavaFX ImageView设置的最大大小的重复,但它是不同的。

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

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

对我来说,这似乎是JavaFX无法实现的,但我不敢相信。但是我在网上找不到任何东西。这方面有什么技巧/错误/变通方法吗?

共有3个答案

路金鑫
2023-03-14

您可以获取实际的图像资源,并查询其宽度/高度以用于拟合值:

  Image image = imageView.getImage();

  double nativeWidth = image.getWidth();
  double nativeHeight = image.getHeight();
戈巴英
2023-03-14

您只需要添加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);           
姬奇思
2023-03-14

如果不希望图像拉伸,可以使用:

setPreserveRatio(true);

然后,您可以根据需要拟合宽度和高度
ImageView setPervveRatio javadoc

 类似资料:
  • 我在StackPane中调整ImageView的大小时遇到了一个问题:如果StackPane是根容器,并且我将图像的高度和宽度绑定到StackPane,则一切正常。 但若我将这样的堆栈窗格放置在网格中,那个么图像的大小就无法正确调整。正如我所读到的,ImageView无法调整大小的问题。有什么方法可以调整它的大小吗?或者你能给一些建议如何调整ImageView的大小吗?

  • 当我调整窗口大小时,舞台以及包含的场景会正确调整大小,但是当我单击最大化按钮时,只有舞台被最大化,而不是里面的场景。更糟糕的是,没有手动更改场景高度和宽度的方法(这些是只读的)。我还尝试创建新场景并将旧场景的根元素放在里面,但后来我得到了一个例外,即2个场景不能具有相同的根元素。谢谢! 最小可再现示例: 我标记了单击“最大化”的时刻。谢谢

  • 如题,我想在JavaFX中制作window,并使其永久最大化(即全屏)。 这是产生错误的示例代码…嗯,意外行为。 请注意 和 。一切正常,直到...我按 ⊞↓( ),此时我的窗口被调整大小,我无法再次最大化它。我正在Windows 10上运行NetBeans的代码。

  • 有人知道JavaFX中画布的最大尺寸吗?从一些测试中,它接缝为8192(与IE相同),在我看来,这很奇怪。也许,可以修改吗?

  • 我的代码创建了一个窗口,并按照我想要的方式排列它...最初。但是,如果我最大化窗口,边框窗格的顶部和底部不会留在中心。它们漂移到左上角和左下角。 我试着禁用最大化窗口选项,但它又一次打乱了页面的外观,顶部和底部都在移动。 这是我的代码: 我昨晚才开始自学JavaFX,但似乎无法弄清楚我哪里出了问题,或者找到了解决问题的方法。 提前感谢任何建议。

  • 问题内容: 所以基本上我正在生成随机的10000个IP地址,我想存储在HashSet中找到的所有那些IP地址,但是根据我的计算,发现了大约6000个IP地址,但是在HashSet中仅存储了700个IP地址?HashSet在存储String方面是否有任何限制。任何建议将不胜感激。 问题答案: 就您而言,没有限制(限制是数组的最大大小,即2 ** 31)。 但是,仅存储 唯一 值,因此我的猜测是您仅生