如何得到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 如下:
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
总结,两种方式都可以得屏幕的宽高及密度,查看源码,会发现两种方式其实一样。
测试手机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
总结,两种方式都可以得屏幕的宽高及密度,查看源码,会发现两种方式其实一样。
相关文章推荐
- Android如何得到当前正在屏幕上运行的程序包名?
- android中如何在得到返回数据后设置图片
- 如何在Android中获知屏幕打开或者关闭
- Android-使用ListView把SQLite中的数据显示至屏幕
- 如何在Android上快速显示yuv数据
- Android视频播放项目总结之 得到手机中的所有视频数据
- 如何得到mysql数据表中的各个列?
- Android: 如何得到电话号码、IMEI、IMSI、SIM卡序列号
- Android如何保持屏幕常亮
- Android应用如何支持屏幕多尺寸多分辨率问题
- 17、android设备如何防止屏幕休眠(转载)
- Android开发中如何固定屏幕显示!
- C++ 中MFC DLL 如何链接SQLite数据库,增加数据,并得到当前日期
- Fiddler 如何抓取Android APP的数据
- android之Service介绍之四 如何传递复杂数据的AIDL服务
- 学习android 笔记(4):如何获取屏幕的相关属性以及dp 、dip、dpi 、px的概念
- android 如何让自定义dialog的宽度充满整个屏幕?
- 如何反编译android的apk文件得到资源文件
- [Android开发] 在Android开发时,如何实现和服务器的数据同步?
- Android如何在测试程序中删除被测应用私有的原始数据