2012-11-01 56 views
6

Tôi đã có một ứng dụng ipad với một số điểm chạm khá nhỏ mà chỉ vừa đủ chấp nhận được trên màn hình 10 inch của một chiếc iPad thông thường. Tôi muốn để có thể có được thiết bị dpi vì vậy tôi có thể mở rộng quy mô của các yếu tố nhỏ cho mini và bất cứ điều gì trong tương lai mini được phát hành.Làm cách nào để phát hiện dpi trên iPad mini?

+0

[Câu trả lời này] (http://stackoverflow.com/a/7922666/759019) có thể hữu ích. –

+0

có thể trùng lặp với [Nhận ppi của iPhone/iPad/iPod Touch khi chạy] (http://stackoverflow.com/questions/3860305/get-ppi-of-iphone-ipad-ipod-touch-at-runtime) –

+0

Không có cả hai câu trả lời đều xử lý iPadMini – AlexWien

Trả lời

4

Các DPI là 163 pixel mỗi inch (ppi):

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

Bạn không thể có được điều này lập trình, vì vậy bạn sẽ cần phải lưu trữ như một hằng số trong mã của bạn.

+0

Anh ấy muốn nhận được giá trị của DPI theo lập trình mà tôi nghĩ. –

+4

Thật may mắn, bạn không thể. – borrrden

3

Bạn không thể nhận được giá trị dpi (hoặc chính xác hơn ppi) trực tiếp, vì bạn phải biết số milimet (hoặc inch) của màn hình vật lý.
Trước tiên bạn phải phát hiện xem đó có phải là iPad mini hay không và sau đó bạn lưu trữ giá trị dpi cho mỗi thiết bị (chưa biết) trong ứng dụng của bạn.

Như thời điểm viết bài, mã này phát hiện 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; 
} 

Nó không phải futureproof vì một máy id mới có thể được giới thiệu sau đó, nhưng không có phương pháp futureproof.
Nếu đó là iPad mini sử dụng 163 dpi, nếu không hãy sử dụng các liên kết ở trên trong nhận xét, để tính toán dpi cho iPhone và iPad.

Các vấn đề liên quan