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