您的位置:首页 > 移动开发 > Android开发

如何得到android屏幕的宽高密度(带实测数据)

2013-11-28 15:27 447 查看
测试手机1:魅族MX   屏幕分辨率为640*960, 像素密度为:320ppi,屏幕尺寸:4.0,android版本 4.2.1

测试手机4:三星Galaxy S4 GT-I9500     屏幕分辨率为1080*1920,像素密度为:480ppi,屏幕尺寸:5.0,android版本 4.3

测试手机3:小米2s 屏幕分辨率为720*1280,像素密度为:320ppi,屏幕尺寸:4.3,android版本 4.1.1

测试手机4:佳域G4    屏幕分辨率为720*1280,像素密度为:320ppi,屏幕尺寸:4.7,android版本 4.2.1

测试手机5:coolpad  5860 屏幕分辨率为480*800,像素密度为:240ppi,屏幕尺寸:4.0,android版本 2.3.5

通过两种方式获取

//测试得到屏幕的分辨率
//方式1,通过android提供的DisplayMetrics对象
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.i("Mylog DisplayMetrics","widthPixels:"+metrics.widthPixels+",heightPixels:"+metrics.heightPixels+",xdpi:"+metrics.xdpi+",ydpi:"+metrics.ydpi+",density:"+metrics.density+",densityDpi:"+metrics.densityDpi+",scaledDensity:"+metrics.scaledDensity);

//方式2,通过android提供的Display对象
WindowManager manage=getWindowManager();
Display display=manage.getDefaultDisplay();
int getHeight=display.getHeight();
int getWidth=display.getWidth();
Log.i("Mylog Display","getHeight:"+getHeight+",getWidth:"+getWidth);

魅族MX得到的结果log 如下:

11-28 11:26:25.306: I/Mylog DisplayMetrics(5477): widthPixels:640,heightPixels:960,xdpi:290.2857,ydpi:290.2857,density:2.0,densityDpi:320,scaledDensity:2.0
11-28 11:26:25.306: I/Mylog Display(5477): getWidth:640,getHeight:960

三星Galaxy S4 得到的结果log 如下:
11-28 11:35:45.836: I/Mylog DisplayMetrics(12973): widthPixels:1080,heightPixels:1920,xdpi:442.451,ydpi:443.345,density:3.0,densityDpi:480,scaledDensity:3.0
11-28 11:35:45.836: I/Mylog Display(12973): getWidth:1080,getHeight:1920


小米2s  得到的结果log 如下:
11-28 11:57:29.373: I/Mylog DisplayMetrics(22706): widthPixels:720,heightPixels:1280,xdpi:345.0566,ydpi:342.23157,density:2.0,densityDpi:320,scaledDensity:2.0
11-28 11:57:29.373: I/Mylog Display(22706): getWidth:720,getHeight:1280

佳域G4  得到的结果log 如下:

11-28 11:42:28.814: I/Mylog DisplayMetrics(11333): widthPixels:720,heightPixels:1280,xdpi:320.0,ydpi:320.0,density:2.0,densityDpi:320,scaledDensity:2.0
11-28 11:42:28.815: I/Mylog Display(11333): getWidth:720,getHeight:1280


Coolpad 5860  得到的结果log 如下:

11-28 14:08:33.249: I/Mylog DisplayMetrics(1346): widthPixels:480,heightPixels:800,xdpi:160.42105,ydpi:160.0,density:1.5,densityDpi:240,scaledDensity:1.5
11-28 14:08:33.259: I/Mylog Display(1346): getWidth:480,getHeight:800


总结,两种方式都可以得屏幕的宽高及密度,查看源码,会发现两种方式其实一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息