[Android问答] 如何获得手机屏幕分辨率?

原文地址为: [Android问答] 如何获得手机屏幕分辨率?

这个问题并不复杂,但是问的人实在很多,所以还是集中回答一下。

Android 3.2(API Level 13)开始,在Activity里使用下面的方法来获取屏幕分辨率(单位是像素):

Display display = getWindowManager().getDefaultDisplay(); //Activity#getWindowManager()
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果代码不是写在Activity里,用下面的方法(通过WINDOW_SERVICE获取display对象):

WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display
= wm.getDefaultDisplay();
display.getSize(size);
int width = size.x;
int height = size.y;

如果Android版本小于3.2,那么因为Display对象还没有getSize()方法,应该用下面的方法获取屏幕分辨率:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

最后,附Android系统版本与API Level对照表(官方文档在这里,如果打不开,也可以在android源文件的android.os.Build里找到这些对应关系):

Platform VersionAPI LevelVERSION_CODENotes
Android 5.021LOLLIPOP(正式的名称)
 21L(暂时使用的名称)
Android 4.4W20KITKAT_WATCH 
Android 4.419KITKAT 
Android 4.318JELLY_BEAN_MR2 
Android 4.217JELLY_BEAN_MR1 
Android 4.1, 4.1.116JELLY_BEANPlatform Highlights
Android 4.0.3, 4.0.415ICE_CREAM_SANDWICH_MR1Platform Highlights
Android 4.0, 4.0.1, 4.0.214ICE_CREAM_SANDWICH
Android 3.213HONEYCOMB_MR2
Android 3.1.x12HONEYCOMB_MR1Platform Highlights
Android 3.0.x11HONEYCOMBPlatform Highlights
Android 2.3.4
Android 2.3.3
10GINGERBREAD_MR1PlatformHighlights
Android 2.3.2
Android 2.3.1
Android2.3
9GINGERBREAD
Android 2.2.x8FROYOPlatform Highlights
Android 2.1.x7ECLAIR_MR1PlatformHighlights
Android 2.0.16ECLAIR_0_1
Android 2.05ECLAIR
Android 1.64DONUTPlatform Highlights
Android 1.53CUPCAKEPlatform Highlights
Android 1.12BASE_1_1 
Android 1.01BASE 

 

参考资料

Display | Android Developers

Android: How to get screen dimensions

What is API Level?


转载请注明本文地址: [Android问答] 如何获得手机屏幕分辨率?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值