苹果设备屏幕相关 转帖

果设备屏幕相关

 

网上流传的获取的当前设备dpi的方法:

 

  1. float scale = 1;  
  2. if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {  
  3.     scale = [[UIScreen mainScreen] scale];  
  4. }  
  5. float dpi = 0;  
  6. if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {  
  7.     dpi = 132 * scale;  
  8. } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {  
  9.     dpi = 163 * scale;  
  10. } else {  
  11.     dpi = 160 * scale;  
  12. }  
在xcode下测试最新的ipad和iphone模拟器,scale都是1,由此得出的dpi大小就是163了,不准备。

 

在维基查到的各设备dpi:

 

  1. 设备         尺寸    分辨率       ppi     宽高比  
  2. ipad 2      9.7     1024x768    132  
  3. iPad 4      9.7     2048x1536   264     4:3  
  4. iPad 3      9.7     2048x1536   264     4:3  
  5. iphone 3g   3.5     480x320     163  
  6. iPhone 5    4.0     1136x640    326     16:9  
  7. iPhone 4,4S 3.5     960x640     326     3:2  
  8. iPod Touch5 4.0     1136x640    326     16:9  
  9. iPod Touch4 3.5     960x640     326     3:2  

 


 

根据设备屏幕分辨率辨别当前所用设备(自行添加需要判断的设备分辨率):

 

  1. if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)   
  2.    {   
  3.        CGSize result = [[UIScreen mainScreen] bounds].size;   
  4.           
  5.        if(result.height == 480.f)   
  6.        {   
  7.            return @"ViewController";   
  8.        }   
  9.        else   
  10.        {   
  11.            return @"ViewController-iPhone5";   
  12.        }   
  13.    }   
  14.    

1、得到当前屏幕的尺寸:

  1. CGRect rect_screen = [[UIScreen mainScreen] bounds];  
  2.     CGSize size_screen = rect_screen.size;  
 
2、获得scale:
  1. CGFloat scale_screen = [UIScreen mainScreen].scale;  

此时屏幕尺寸的宽高与scale的乘积就是相应的分辨率值。
posted @ 2012-11-20 10:30  六界剑仙  阅读(150)  评论(0)    收藏  举报