注:Context.getResources().getDisplayMetrics()依赖于手机系统,获取到的是系统的屏幕信息;
WindowManager.getDefaultDisplay().getMetrics(dm)是获取到Activity的实际屏幕信息。
从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();