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

文章标签: android,android教程
2014-11-11 16:32:08     人阅读    

Android 获取屏幕的分辨率

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

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


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

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;  

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

第三种方法:

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人 整理发布,转载须标明出处。

android 通过点击上下文菜单采用intent启动activity   上一篇
下一篇  老邓的andorid学习笔记-Android 4.0 开发环境搭建
精彩回复
#1楼    ; [评论人]:xmlspy   [发表时间]:2014-12-17 17:09:08

总结的非常好,谢谢分享,文章质量很高

我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!