老邓的android学习笔记(2)-Android 获取屏幕的分辨率的N种方式

Android 获取屏幕的分辨率

第一种方法:最简单的方法

1
2
int  screenWidth  = getWindowManager().getDefaultDisplay().getWidth();  
int  screenHeight = getWindowManager().getDefaultDisplay().getHeight(); 


很简单 2句话就能搞定,尽量先使用这种方法进行测试,如果这种方法无法测试通过的话,就换下面的方法
  
第二中方法: 获取屏幕尺寸比较通用的算法

1
2
3
4
5
6
7
8
DisplayMetrics dm =  new  DisplayMetrics();  
dm = getResources().getDisplayMetrics();  
float  density  = dm.density;        
int  densityDPI = dm.densityDpi;  
float  xdpi = dm.xdpi;             
float  ydpi = dm.ydpi;  
screenWidth  = dm.widthPixels;  
screenHeight = dm.heightPixels;  

该方法支持大部分的手机,一般情况下在上面的方法不通过的情况可以通过改方法进行测试,没问题最好...

第三种方法:

1
2
3
4
5
6
7
8
9
10
dm =  new  DisplayMetrics();  
getWindowManager().getDefaultDisplay().getMetrics(dm);  
density  = dm.density;  
densityDPI = dm.densityDpi; 
xdpi = dm.xdpi;           
ydpi = dm.ydpi;  
int  screenWidthDip = dm.widthPixels; 
int  screenHeightDip = dm.heightPixels;  
screenWidth  = ( int )(dm.widthPixels * density +  0 .5f);  
screenHeight = ( int )(dm.heightPixels * density +  0 .5f); 

 

这种方法比较适合特别的机型,比如i9000 ,通过这种方法进行够很好的进行识别的验证。他的原理是将方法一和方法二的结果乘以乘以density后( density 大于1的情况下,需要设置targetSdkVersion在4-9之间)

 

说明:目前android的碎片化十分的严重,很多的方法都不能通用.


原文地址:http://www.itmmd.com/201411/161.html 
该文章由 萌萌的IT人 整理发布,转载须标明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值