码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-12-23 10:30:13      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:android   android开发   

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

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

标签:android   android开发   

原文地址:http://blog.csdn.net/androidmylove/article/details/42099293

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!