ImageView
Inherits from: Node
Overview
The
ImageView is a
Node used for painting images loaded with Image class.
This class allows resizing the displayed image (with or without preserving the original aspect ratio) and specifying a viewport into the source image for restricting the pixels displayed by this
ImageView.
Example code for displaying images
import javafx.geometry.Rectangle2D;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.stage.Stage;
// load the image
var image = Image {
url: "{__DIR__}flower.png"
}
// simple ImageView: displays the image as is
var iv1 = ImageView {
image: image
}
// resizes the image to have width of 100 while preserving the ratio and using
// higher quality filtering method; this ImageView is also cached to
// improve performance
var iv2 = ImageView {
image: image
fitWidth: 100
preserveRatio: true
smooth: true
cache: true
}
// defines a viewport into the source image (achieving a "zoom" effect) and
// displays it rotated
var iv3 = ImageView {
image: image
viewport: Rectangle2D {
minX: 40
minY: 35
width: 110
height: 110
}
rotate: 90
}
Stage {
title: "ImageView"
width: 415
height: 200
scene: Scene {
content: HBox {
content: [iv1, iv2, iv3]
}
fill: Color.BLACK
}
}
The code above produces the following:
Profile: common
Variable Summary
| name | type | Default Value | description |
|---|---|---|---|
| image | Image | null |
The Image to be painted by this
|
| x | Number | 0 |
The current x coordinate of the
|
| y | Number | 0 |
The current y coordinate of the
|
| fitWidth | Number | 0 |
The width of the bounding box within which the source image is resized as necessary to fit. If set to a value <= 0, then the intrinsic width of the image will be used as the
|
| fitHeight | Number | 0 |
The height of the bounding box within which the source image is resized as necessary to fit. If set to a value <= 0, then the intrinsic height of the image will be used as the
See #preserveRatio for information on interaction between image view's
|
| preserveRatio | Boolean | false |
Indicates whether to preserve the aspect ratio of the source image when scaling to fit the image within the fitting bounding box. If set to
false, it affects the dimensions of this
ImageView in the following way:
Note that the dimensions of this node as reported by the node's bounds will be equal to the size of the scaled image and is guaranteed to be contained within fitWidth x fitHeight bonding box.
|
| smooth | Boolean | platform-dependent |
Indicates whether to use a better quality filtering algorithm or a faster one when transforming or scaling the source image to fit within the bounding box provided by
If set to
The default value depends on platform configuration. |
| viewport | Rectangle2D | null |
The rectangular viewport into the image. The viewport is specified in the coordinates of the image, prior to scaling or any other transformations. If
|
Inherited Variables
Node
| name | type | Default Value | description |
|---|---|---|---|
| id | String |
The id of this
| |
| styleClass | String |
A String identifier which can be used to logically group Nodes, specifically for an external style engine. This variable is exactly analogous to the styleClass attribute on an HTML element. | |
| style | String |
A string representation of the CSS style associated with this specific Node. This is exactly analogous to the "style" attribute on an HTML element, but uses the syntax defined in JavaFX CSS. | |
| visible | Boolean | true |
Specifies whether this
|
| cursor | Cursor | null |
Defines the mouse cursor for this
|
| opacity | Number | 1.0 |
Specifies how opaque (that is, solid) the
A #visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%. Opacity is specified as a value between 0 and 1. Values less than 0 or greater than 1 are clipped to 0 and 1 respectively. On some platforms ImageView might not support opacity variable. |
| clip | Node | null |
Specifies a
For example, you can use an javafx.scene.image.ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as javafx.scene.shape.Rectangle or javafx.scene.shape.Circle. Or you could use a javafx.scene.text.Text node to represent the Clip. See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored. Note: this is a conditional feature. See javafx.runtime.ConditionalFeature#SHAPE_CLIP ConditionalFeature.SHAPE_CLIP for more information. |
| cache | Boolean | false |
A performance hint to the system to indicate that this
|
| cacheHint | CacheHint | CacheHint.DEFAULT |
Additional hint for controlling bitmap caching. Under certain circumstances, such as animating nodes that are very expensive to render, it is desirable to be able to perform transformations on the node without having to regenerate the cached bitmap. An option in such cases is to perform the transforms on the cached bitmap itself. This technique can provide a dramatic improvement to animation performance, though may also result in a reduction in visual quality. The
It is possible to enable the cacheHint only at times when your node is animating. In this way, expensive nodes can appear on screen with full visual quality, yet still animate smoothly. Example:
Note that
cacheHint is only a hint to the system. Depending on the details of the node or the transform, this hint may be ignored.
If
|
| effect | Effect | null |
Specifies an effect to apply to this
Note: this is a conditional feature. See javafx.runtime.ConditionalFeature#EFFECT ConditionalFeature.EFFECT for more information. |
| disable | Boolean | false |
Sets the individual disabled state of this
|
| pickOnBounds | Boolean | false |
Defines how the picking computation is done for this node when triggered by a
|
| managed | Boolean | true |
Defines whether or not this node's layout will be managed by it's parent. Each parent class follows a strategy for laying out managed children during the scene's layout pass:
If a
|
| layoutX | Number | 0 |
Defines the X coordinate of the translation that is added to the transformed coordinates of this
For example, if
|
| layoutY | Number | 0 |
Defines the Y coordinate of the translation that is added to the transformed coordinates of this
For example, if
|
| layoutInfo | LayoutInfoBase |
Hook for node-specific layout information used by layout containers. If the node is not a child of a container which supports layout info, this variable will be ignored. Note that layoutInfo object literals may be shared across nodes, which means altering the vars in layoutInfo will affect all such nodes. | |
| transforms | Transform | [] |
Defines the sequence of javafx.scene.transform.Transform objects to be applied to this
By default, #layoutBounds is defined as the local bounds with all the transforms in this sequence applied. |
| translateX | Number | 0 |
Defines the X coordinate of the translation that is added to the transformed coordinates of this
This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location. |
| translateY | Number | 0 |
Defines the Y coordinate of the translation that is added to the transformed coordinates of this
This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location. |
| translateZ | Number | 0 |
Defines the Z coordinate of the translation that is added to the transformed coordinates of this
This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location. Note: this is a conditional feature. See javafx.runtime.ConditionalFeature#SCENE3D ConditionalFeature.SCENE3D for more information. |
| scaleX | Number | 1.0 |
Defines the factor by which coordinates are scaled about the center of the object along the X axis of this
This scale factor is not included in #layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account. The pivot point about which the scale occurs is the center of the untransformed #layoutBounds. |
| scaleY | Number | 1.0 |
Defines the factor by which coordinates are scaled about the center of the object along the Y axis of this
This scale factor is not included in #layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account. The pivot point about which the scale occurs is the center of the untransformed #layoutBounds. |
| scaleZ | Number | 1.0 |
Defines the factor by which coordinates are scaled about the center of the object along the Z axis of this
This scale factor is not included in #layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account. The pivot point about which the scale occurs is the center of the rectangular bounds formed by taking #boundsInLocal and applying all the transforms in the #transforms[] sequence. Note: this is a conditional feature. See javafx.runtime.ConditionalFeature#SCENE3D ConditionalFeature.SCENE3D for more information. |
| rotate | Number | 0.0 |
Defines the angle of rotation about the
This rotation factor is not included in #layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account. The pivot point about which the rotation occurs is the center of the untransformed #layoutBounds. Note that because the pivot point is computed as the center of this
|
| rotationAxis | Point3D | Rotate.Z_AXIS |
Defines the axis of rotation of this
Note: this is a conditional feature. See javafx.runtime.ConditionalFeature#SCENE3D ConditionalFeature.SCENE3D for more information. |
| blocksMouse | Boolean | false |
If
|
| focusTraversable | Boolean | false |
Specifies whether this
|
