最近我开始使用 javaFX anchor Pane ,我发现距离值是 double 的。现在我的问题是为什么他们选择 double 而不是 int ?我的意思是它是像素的数量,据我所知,你不能将内容移动半个像素。一个小例子:

AnchorPane.setTopAnchor(something, 10.5); 

在此示例中,它将顶部 anchor 设置为 10.5 像素。再说一遍,为什么他们选择将其设为 double ?当我输入 10.5 而不是 10.0 时,我究竟会改变什么?

请您参考如下方法:

JavaFX 中的布局坐标都是 double。根据子项的最终位置的属性,实际上可能会舍入为整数值(请参阅 the snapToPixel property )。 (AnchorPane 似乎没有这样做,而是简单地使用非整数值作为子项的位置/宽度。)

此外,可能存在将节点与像素对齐的变换,例如缩放 2 倍。

一般来说,不可能在所有情况下都始终将“节点像素”与显示像素完美对齐。 (只需考虑旋转 45°。)

如果在应用所有变换后,Node 的一部分未完全覆盖像素,则结果是使用取决于像素部分的不透明度绘制节点的颜色被节点覆盖,例如位于 10.5 的矩形边缘会导致节点的颜色以一半不透明度绘制在“像素 10”上。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!