在JavaFX中,我们有时候需要实现裁剪效果,这个时候我们可以使用ImageView的setClip方法来实现。
如下所示:
Image srcImage = new Image(getClass().getResource("test.png").toString());
ImageView imageView = new ImageView(srcImage);
Rectangle clip = new Rectangle(
srcImage.getWidth(), srcImage.getHeight()
);
clip.setArcWidth(15);
clip.setArcHeight(15);
imageView.setClip(clip);
我们首先在ImageView中载入了一个Image,然后通过Image的大小创建了一个Rectangle,设置了圆角,并通过imageView的setClip方法应用到ImageView中。
效果如下:
大家可以看到圆角的效果,但是另外,倘若我们需要加上阴影等的特效的话,必须将clip设置为空,这样就需要我们重新拷贝Image了,代码如下:
SnapshotParameters parameters = new SnapshotParameters();
parameters.setFill(Color.TRANSPARENT);
WritableImage image = imageView.snapshot(parameters, null);
imageView.setClip(null);
imageView.setEffect(new DropShadow(20, Color.BLACK));
imageView.setImage(image);
我们通过Node的snapshot方法截图并讲clip设为空,然后重新设置了Image,并加上阴影效果。
效果如下:
这样大家可以看到阴影效果了。
最近比较忙,一直没有写博客。恩,在给别人改网站,公司有项目,自己还要做App,所以博客和邮箱都没有看,因为有人发邮件问了问题的,就趁机顺便写一下博客。
虽然忙了,但自己觉得还是比较充实的,人啊,有时候还是需要忙一点,才能找回工作的激情。
文章评论