我使用以下代码生成节点的图像,并将其与ImageView一起添加到我的场景中:
SnapshotParameters snapParams = new SnapshotParameters();
snapParams.setFill(Color.TRANSPARENT);
this.dragImage = new ImageView(draggable.snapshot(snapParams, null));
...
frontPane.getChildren().add(this.dragImage);
Bounds localBounds = frontPane.sceneToLocal(draggable
.localToScene(draggable.getBoundsInLocal()));
this.dragImage.relocate(localBounds.getMinX(),
localBounds.getMinY());
不幸的是,渲染的图像非常模糊,如我的截图所示。 任何想法可能是什么问题或如何撤回一个不模糊的图像将是受欢迎的。
更新
播放arround时我删除了
this.dragImage.relocate(localBounds.getMinX(),localBounds.getMinY());
导致图像清晰,完全没有模糊。我不知道为什么会这样,我仍然需要将图像转换到正确的位置。
答案 0 :(得分:1)
我通过在重定位调用中使用简单的强制转换来消除模糊:
this.dragImage.relocate((int) localBounds.getMinX(),(int) localBounds.getMinY());
我发现localBounds.getMinX()
为638.5,localBounds.getMinY()
为136.5。进一步的实验使我得出结论,翻译的非积分值导致图像模糊。
有关此内容的说明,请参阅“与坐标系交互”中Shape的API文档。