最近我对我的应用程序的演示有点不确定,因此我创建了一个小型测试器应用程序来更仔细地查看这个主题。
为此,我派生了我自己的组件类,它没有做任何事情,而是绘制了自己的外边界,并且惊讶于它没有完全显示 - 无论是在模拟器中,还是在我的iPhone 5S上。
现在我的问题是:为什么在{x 1}}中绘制的组件在模拟器和iPhone 5S上显示为11个像素宽和高?
以下是一些可用于演示此内容的代码:
aGraphics.drawRect(getX() + 2, getY() + 2, 10, 10)
答案 0 :(得分:0)
简而言之mentioned here,但此行为基于Java图形API记录的here中的约定。
Graphics是一个低级API,我们试图使它与Java的工作方式保持一致。我们所有的样品都依赖于宽度/高度-1的约定,所以它通过示例&如果没有其他的一致性。
这个逻辑是数学的,你不是在像素上绘制,而是在像素之间的虚拟坐标空间中绘制,这在你开始变换图形操作时更有意义。