rbs*_*rbs 32 scaling imageview javafx-2
如何在ImageView中获取图像以自动调整大小以使其始终适合父节点?
这是一个小代码示例:
@Override
public void start(Stage stage) throws Exception {
BorderPane pane = new BorderPane();
ImageView img = new ImageView("http://...");
//didn't work for me:
//img.fitWidthProperty().bind(new SimpleDoubleProperty(stage.getWidth()));
pane.setCenter(img);
Scene scene = new Scene(pane);
stage.setScene(scene);
stage.show();
}
Run Code Online (Sandbox Code Playgroud)
The*_*Cat 58
@Override
public void start(Stage stage) throws Exception {
BorderPane pane = new BorderPane();
ImageView img = new ImageView("http://...");
img.fitWidthProperty().bind(stage.widthProperty());
pane.setCenter(img);
Scene scene = new Scene(pane);
stage.setScene(scene);
stage.show();
}
Run Code Online (Sandbox Code Playgroud)
小智 8
这是一个比绑定width属性更好的解决方案(更好的是因为通常在将子节点绑定到其容器时,可能无法使容器变小.在其他情况下,容器甚至可能自动开始增长).
下面的解决方案依赖于覆盖ImageView,以便我们可以让它表现为"可调整大小",然后提供最小,首选和最大宽度/高度的实现.同样重要的是实际执行resize()调用.
class WrappedImageView extends ImageView
{
WrappedImageView()
{
setPreserveRatio(false);
}
@Override
public double minWidth(double height)
{
return 40;
}
@Override
public double prefWidth(double height)
{
Image I=getImage();
if (I==null) return minWidth(height);
return I.getWidth();
}
@Override
public double maxWidth(double height)
{
return 16384;
}
@Override
public double minHeight(double width)
{
return 40;
}
@Override
public double prefHeight(double width)
{
Image I=getImage();
if (I==null) return minHeight(width);
return I.getHeight();
}
@Override
public double maxHeight(double width)
{
return 16384;
}
@Override
public boolean isResizable()
{
return true;
}
@Override
public void resize(double width, double height)
{
setFitWidth(width);
setFitHeight(height);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 ScrollPane 或简单的 Pane 来解决这个问题: 示例:
img_view1.fitWidthProperty().bind(scrollpane_imageview1.widthProperty());
img_view1.fitHeightProperty().bind(scrollpane_imageview1.heightProperty());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50329 次 |
| 最近记录: |