在 iPhone 上计算像素大小

11

在iPhone SDK中有没有一种方法可以计算单个像素的大小(以毫米为单位)?

2个回答

29

回答有关像素大小的问题:

iPhone和iPod Touch上的像素大小

  1. 早期的iPhone(iPhone 4之前)技术规格说明:分辨率为480×320像素,每英寸163个像素(ppi)。每个像素约为0.006135英寸或0.1558282毫米。

  2. 前三代iPod touch的ppi也是163。

  3. iPhone 4的规格说明为960×640像素,每英寸326个像素(ppi)。所以每个像素的宽度为1英寸/326像素,约为0.003067英寸或0.0779毫米。使用点而不是像素。编辑:如Olaf的评论所述,实际上可以使用半点来寻址像素。

  4. 第四代iPod touch(2010年9月)的规格specs与iPhone 4相同,分辨率为960×640像素,每英寸326个像素(ppi)。

  5. iPhone 4S(2011年10月)在分辨率方面与iPhone 4相同。

  6. iPhone 5(2012年9月)的规格说明为1136×640像素,每英寸326个像素(ppi)。像素大小没有改变。屏幕对角线为4英寸。

  7. iPhone 5C和iPhone 5S(2013年9月)的分辨率、像素大小和对角线与iPhone 5相同。

  8. iPhone 6,4.7英寸(2014年9月)specs的分辨率为1334×750像素,每英寸326个像素(ppi)。像素大小与4、4S、5和5s相同。

  9. iPhone 6 Plus,5.5英寸(2014年9月)specs的分辨率为1920×1080像素,每英寸401个像素(ppi)。像素大小约小20%。每个像素的宽度为1英寸/401像素,约为0.002494英寸或0.06334毫米。

  1. iPad 1iPad 2的显示屏对角线均为9.7英寸,分辨率为1024x768像素,每英寸132个像素(即132 ppi),根据iPad规格说明,每个像素约为0.0075758英寸或0.1924毫米。
  2. 新款iPad(2012年3月)的显示屏对角线为9.7英寸,分辨率为2048x1536像素,每英寸264个像素(即264 ppi),根据当前iPad规格,每个像素约为0.0037879英寸或0.09621毫米。
  3. iPad Mini(第一代 - 2012年10月)的显示屏对角线为7.9英寸,分辨率为1024x768像素,每英寸163个像素(即163 ppi),根据原始iPad mini规格说明,每个像素约为0.006135英寸或0.156毫米。
  4. iPad Mini 2(第二代 - 2013年10月)的显示屏对角线为7.9英寸,分辨率为2048x1536像素,每英寸326个像素(即326 ppi),根据当前iPad mini规格,每个像素约为0.0030675英寸或0.0779毫米。
  5. iPad Air 2(2014年10月)和iPad Mini 3(2014年10月)的分辨率、像素大小和对角线与之前版本相同。请参阅iPad Air、iPad Air 2、iPad Mini、iPad 2和iPad3的比较
你不需要让iPhone SDK计算单个像素的大小。一种选择是确定你正在运行的设备类型,然后选择所需的毫米尺寸。
iPhone(包括4S)/ iPod Touch屏幕尺寸,具有3.5英寸(对角线)显示器,不完全是2“x 3”。它们比那稍微小一点。iPhone 5有一个4英寸(对角线)的显示器。
问题者可能实际需要的是:点。 请参见Removers评论以前一个答案。坐标以点为单位指定,而不是像素。

当然它们是可以单独寻址的。您可以在半点上指定位置,这会使您的图形在旧版 iPhone 上看起来模糊,但在 iPhone 4 上则非常清晰。(或者您可以使用 OpenGL 或离屏缓冲区,并将其复制到屏幕以进行低级访问) - Olof Hedman
当人们在这里说960 x 640或640 x 960时,为什么他们没有说明是纵向还是横向模式?请具体说明。 - Volomike
模式取决于您如何持有iPhone或iPad。请参见此链接:http://stackoverflow.com/questions/4482893/iphone-what-is-mean-landscape - Refactor
iPad Mini 的分辨率为163 ppi,而不是162 ppi。根据答案中提供的规格链接。 - yurish
这一切都是真的,除非应用程序运行在放大模式下:例如,当应用程序没有iPhone6的启动图像时,应用程序以iPhone5仿真模式运行,给出了iPhone5的屏幕宽度和高度。因此,要正确检测以毫米为单位测量的当前点大小,必须找出机器名称,并存储已知屏幕尺寸的毫米表。然后通过获得的mainscreen.size计算。 - AlexWien

25

嗯,像素的大小是恒定的。目前iPhone或iPod touch的屏幕尺寸为2英寸x 3英寸(50.8毫米x 76.2毫米),分辨率为320 x 480像素。

50.8 / 320(或76.2 / 480)=> 1个像素的尺寸为0.15875毫米x 0.15875毫米


同意,计算已知固定值的价值没有什么意义。 - schooner
谢谢您的建议。我原本也考虑过这种做法,但是后来想到,如果他们在未来的型号中改变了屏幕尺寸和分辨率,那么我就需要进行更多的修改,以便我的应用程序能在新设备上良好地显示。 - Ian1971
我认为,如果未来的版本更改像素密度(目前为160 ppi),您将检查设备型号并使用不同的常量。我猜想,如果苹果在未来的型号上更改分辨率和/或屏幕尺寸,他们将在更新的SDK中提供该API。 - splattne
4
iPhone 4的像素密度确实翻了一倍,但您无需在应用程序中进行测试,因为您指定的坐标是以点(points)为单位,而非像素。过去,像素和点(points)之间的比例为1:1,现在它们的比例为2:1。 - Remover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接