2010-06-21 43 views
4

我正在做一些关于制作游戏的研究,这个游戏能够调整图形资源以适应任何设备的DPI。是否可以在iPhone OS或Android中检测DPI?

为了做到这一点,我希望能够查询设备的DPI,以适当缩放资产。

这是一款2D游戏,艺术风格非常适合任意缩放比例。什么我将与RES/DPI连击做

例如:

iPhone/iTouch的,在小320x480(163 DPI) - 文本将是正常大小

的iPhone4,在640×960(326 DPI) - 文字将会大一倍

iPad,在768x1024(132 dpi) - 文字可能会被限制在一定的最小尺寸,以利用更大的屏幕空间。

因此,在iPhone OS上,有没有办法查询屏幕的DPI?

(作为一个侧面说明 - 所有这可能在Android设备上?)

回答

1

你可以在安卓与DisplayMetrics类获取这些信息。

+0

感谢这个,它已经几乎一半十年,因为我甚至需要这些信息,但现在它来到我身边。 :) – Jakooistra 2014-02-16 18:10:54

+0

虽然,我问的主要问题仍然是关于iOS,对此我认为除了硬编码之外,还没有其他解决方案。值得庆幸的是,即使是现在,我也不会期望这个问题,因为iOS已经将DPI与外形因素紧密联系在一起。 – Jakooistra 2014-02-16 18:11:57

1

我不确定是否有直接获取DPI的方法,因为您通常不需要知道它。 UIScreen类确实暴露了一个比例因子。对于iPhone < = 3GS和iPad它应该是1.0,对于iPhone 4它应该是2.0。

视编译:

UIScreen *theScreen = [UIScreen mainScreen]; 
float scaleFactor = 1.0f; 
if ([theScreen respondsToSelector:@selector(getScale)]) { 
    scaleFactor = theScreen.scale; 
} 
// use scaleFactor to determine size of fonts/whatever 

但是,新的操作系统是关于不同的屏幕分辨率实现方式意味着您通常不必依赖于DPI自定义比例。诸如图像之类的东西要么会被放大,要么会自动选择一个特殊名称的更高分辨率的图像,并且绘图操作也会自动处理(如现在绘制1点线在Iphone 4上绘制2px线)。字体可能会被类似地处理,我不认为我遇到任何字体特定。阅读上的信息新文档:

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/SupportingResolutionIndependence/SupportingResolutionIndependence.html#//apple_ref/doc/uid/TP40007072-CH10

相关问题