我有一个ipad应用程序,带有一些非常小的触摸点,在普通ipad的10英寸屏幕上几乎无法接受。我希望能够获得设备dpi,这样我就可以扩大mini的小元素的大小以及将来发布的任何mini。
答案 0 :(得分:4)
答案 1 :(得分: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。