![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0kDO1MDMwEjMxETMyEDMy8CX0ADOx8CXyEDMy8CXzV2Zh1WavwVbvNmLzd2bsJmbj5iMwAzYpB3Lc9CX6MHc0RHaiojIsJye.png)
这个问题并不复杂,但是问的人实在很多,所以还是集中回答一下。
从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 | | (正式的名称) |
21 | | (暂时使用的名称) | |
Android 4.4W | 20 | | |
Android 4.4 | 19 | | |
Android 4.3 | 18 | | |
Android 4.2 | 17 | | |
Android 4.1, 4.1.1 | 16 | | Platform Highlights |
Android 4.0.3, 4.0.4 | 15 | | Platform Highlights |
Android 4.0, 4.0.1, 4.0.2 | 14 | | |
Android 3.2 | 13 | | |
Android 3.1.x | 12 | | Platform Highlights |
Android 3.0.x | 11 | | Platform Highlights |
Android 2.3.4 Android 2.3.3 | 10 | | Platform Highlights |
Android 2.3.2 Android 2.3.1 Android 2.3 | 9 | | |
Android 2.2.x | 8 | | Platform Highlights |
Android 2.1.x | 7 | | Platform Highlights |
Android 2.0.1 | 6 | | |
Android 2.0 | 5 | | |
Android 1.6 | 4 | | Platform Highlights |
Android 1.5 | 3 | | Platform Highlights |
Android 1.1 | 2 | | |
Android 1.0 | 1 | |
参考资料
Display | Android Developers
Android: How to get screen dimensions
What is API Level?
转载于:https://www.cnblogs.com/bjzhanghao/archive/2012/11/12/2765835.html