Я хотел бы вставить видео в мою сцену JavaFx 2.x, а также изменить его размер и перенести в мои нужды. Проблема, с которой я столкнулась, следующая. Если я строй MediaView
компонента, а затем перевести X или Y координат, то вся точка зрения является переставить так:Как масштабировать и устанавливать координаты MediaView?
MediaView mv = (...)
mv.setTranslateX(200);
mv.setTranslateY(200);
я мог бы сделать подобное преобразование с масштабированием свойства:
MediaView mv = (...)
mv.setScaleX(2);
mv.setScaleY(2);
, который будет надлежащим образом масштабируетсяmv
экземпляра два раза по размеру.
Однако проблема заключается в том, когда я совмещаю эти два перевода. Экземпляр mv
масштабируется, но всегда заканчивается координатами экрана. (0,0)
. Это, конечно, неправильное поведение с моей точки зрения.
Я также попытался обернуть мой компонент MediaView
внутри некоторого узла-обертки, например Group
и выполнить переводы по этому элементу. Поведение такое же.
Как правильно перемещать и масштабировать MediaView
компонент одновременно?
Edit:
Вот мой код, хотя я использую здесь ImageView
. Однако это не имеет значения. После запуска этого кода изображение будет помещено на (0,0)
вместо (100,100)
.
@Override
public void start(Stage stage) throws Exception {
Group root = new Group();
// Img's dimension is 200x200
javafx.scene.image.Image img = new javafx.scene.image.Image("/home/bachman/projects/cs-player/src/main/resources/content.png");
ImageView iv = new ImageView(img);
root.getChildren().add(iv);
// Move Image View
iv.setTranslateX(100);
iv.setTranslateY(100);
// Scale Image View
iv.setScaleX(2.0);
iv.setScaleY(2.0);
Scene scene = new Scene(root);
stage.setWidth(600);
stage.setHeight(600);
stage.setScene(scene);
stage.show();
}
Можете ли вы, пожалуйста, вставить код, тогда вы «объедините эти два перевода». –
Я добавил пример кода –