当前位置: 代码迷 >> Android >> 老掉牙邓的android学习笔记(2)-Android 获取屏幕的分辨率的N种方式
  详细解决方案

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

热度:63   发布时间:2016-04-28 03:15:47.0
老邓的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人 整理发布,转载须标明出处。

  相关解决方案