7

我有一个 ipad 应用程序,带有一些非常小的触摸点,在普通 ipad 的 10 英寸屏幕上几乎无法接受。我希望能够获得设备 dpi,这样我就可以扩大 mini 的小元素的大小以及将来发布的任何 mini 的大小。

4

2 回答 2

5

DPI 为每英寸 163 像素 (ppi):

http://www.apple.com/ipad-mini/specs/

您无法以编程方式获取此信息,因此您需要在代码中存储为常量。

于 2012-11-01T13:35:03.547 回答
3

您无法直接获得 dpi(或更准确地说是 ppi)值,因为您必须知道物理屏幕的毫米数(或英寸数)。
您首先必须检测它是否是 iPad mini,然后将每个(已知)设备的 dpi 值存储在您的应用程序中。

在撰写本文时,此代码检测 iPad mini:

#include <sys/utsname.h>
NSString *machineName()
{
    struct utsname systemInfo;
    if (uname(&systemInfo) < 0) {
        return nil;
    } else {
        return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
    }
}

// detects iPad mini by machine id
+ (BOOL) isIpadMini {

    NSString *machName = machineName();
    if (machName == nil) return NO;

    BOOL isMini = NO;
    if (    [machName isEqualToString:@"iPad2,5"]
         || [machName isEqualToString:@"iPad2,6"]
         || [machName isEqualToString:@"iPad2,7"])
    {
        isMini = YES;
    }
    return isMini;
}

它不是面向未来的,因为以后可能会引入新的机器 ID,但没有面向未来的方法。
如果是 iPad mini,则使用 163 dpi,否则请使用评论中的上述链接来计算 iPhone 和 iPad 的 dpi。

于 2013-03-31T15:10:56.433 回答