2012-11-01 5 views
6

私は通常のipadの10インチの画面ではほとんど受け入れられていないいくつかの非常に小さなタッチポイントでipadアプリを持っています。私はデバイスのdpiを取得して、ミニのための小さな要素のサイズを拡大することができるようにしたいと思います。あなたがプログラムでこれを取得することはできませんので、あなたのコード内の定数として保存する必要がありますipad miniでdpiを検出するにはどうすればよいですか?

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

+0

[この回答](http://stackoverflow.com/a/7922666/759019)が役立つ可能性があります。 –

+0

[iPhone/iPad/iPod Touchのppiを実行時に取得する]の複製が可能(http://stackoverflow.com/questions/3860305/get-ppi-of-iphone-ipad-ipod-touch-at-runtime) –

+0

なしどちらの答えもiPadMiniを処理する – AlexWien

答えて

4

DPIはインチ(PPI)あたり163個のピクセルです。

+0

彼はプログラム的にDPIの価値を得たいと思う。 –

+4

まあ、タフな運は、できません。 – borrrden

3

物理画面のミリメートル(またはインチ)の数を知る必要があるため、dpi(またはより正確にはppi)値を直接取得することはできません。
まず、それがiPad miniであるかどうかを検出して、アプリにまだ知られている各デバイスのdpi値を保存する必要があります。

執筆時点として、このコードは、iPadのミニを検出:

#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が後に導入される可能性がありますので、それはfutureproofではないのですが、ないfutureproof方法がありません。
iPad miniで163dpiを使用している場合は、コメントの上のリンクを使用して、iPhoneとiPadのdpiを計算します。

関連する問題