【问题标题】:Is it possible to detect DPI in iPhone OS, or Android?是否可以在 iPhone OS 或 Android 中检测 DPI?
【发布时间】:2010-06-21 21:44:33
【问题描述】:

我正在研究制作一款能够扩展其图形资源以适应任何设备的 DPI 的游戏。

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

这是一款 2D 游戏,美术风格非常适合任意缩放。

我将如何使用 res/dpi 组合的示例:

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

iPhone4,640x960 (326 dpi) - 文字将是原来的两倍

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

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

(附带说明 - 这在 Android 设备上是否可行?)

【问题讨论】:

    标签: iphone ipad resolution dpi


    【解决方案1】:

    您可以在 Android 中使用 DisplayMetrics 类获取此信息。

    【讨论】:

    • 谢谢你,我什至需要这些信息已经快五年了,但现在它就在这里。 :)
    • 虽然,我问的主要问题仍然是关于 iOS,我认为除了硬编码之外没有其他解决方案。值得庆幸的是,即使是现在,这也不是我所预料的问题,因为 iOS 已将 DPI 与它们的外形尺寸紧密联系在一起。
    【解决方案2】:

    我不确定是否有直接获取 DPI 的方法,因为您通常不需要知道它。 UIScreen 类确实公开了一个比例因子。对于 iPhone

    视线编译:

    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 自定义缩放比例。像图像这样的东西要么被放大,要么会自动选择一个特别命名的更高分辨率的图像,并且绘图操作也会自动处理(比如在 Iphone 4 上绘制 1 点线现在绘制 2 像素线)。字体可能会以类似方式处理,我认为我没有遇到任何特定于字体的内容。阅读新文档以获取信息:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多