天天看点

[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 Version API Level VERSION_CODE Notes
Android 5.0 21

LOLLIPOP

(正式的名称)
21

L

(暂时使用的名称)
Android 4.4W 20

KITKAT_WATCH

Android 4.4 19

KITKAT

Android 4.3 18

JELLY_BEAN_MR2

Android 4.2 17

JELLY_BEAN_MR1

Android 4.1, 4.1.1 16

JELLY_BEAN

Platform Highlights
Android 4.0.3, 4.0.4 15

ICE_CREAM_SANDWICH_MR1

Platform Highlights
Android 4.0, 4.0.1, 4.0.2 14

ICE_CREAM_SANDWICH

Android 3.2 13

HONEYCOMB_MR2

Android 3.1.x 12

HONEYCOMB_MR1

Platform Highlights
Android 3.0.x 11

HONEYCOMB

Platform Highlights

Android 2.3.4

Android 2.3.3

10

GINGERBREAD_MR1

Platform Highlights

Android 2.3.2

Android 2.3.1

Android 2.3

9

GINGERBREAD

Android 2.2.x 8

FROYO

Platform Highlights
Android 2.1.x 7

ECLAIR_MR1

Platform Highlights
Android 2.0.1 6

ECLAIR_0_1

Android 2.0 5

ECLAIR

Android 1.6 4

DONUT

Platform Highlights
Android 1.5 3

CUPCAKE

Platform Highlights
Android 1.1 2

BASE_1_1

Android 1.0 1

BASE

参考资料

Display | Android Developers

Android: How to get screen dimensions

What is API Level?

转载于:https://www.cnblogs.com/bjzhanghao/archive/2012/11/12/2765835.html