Android如何获取屏幕的尺寸和屏幕的分辨率呢?

在开发中,往往需要用到屏幕的实际尺寸、分辨率来绘制布局、效果适配等。那么怎么获得呢?

首先看一下获取屏幕的尺寸:

1、从Android 3.2(API Level 13)开始,在Activity里使用下面的方法来获取屏幕尺寸(单位是像素):

Display display = getWindowManager().getDefaultDisplay(); //Activity#getWindowManager()
Point size = newPoint(); 
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();
  Point size = newPoint();
display.getSize(size); 
int width =size.x; 
int height = size.y;
2、如果Android版本小于3.2,即API Level小于 13,那么因为Display对象还没有getSize()方法,应该用下面的方法获取屏幕尺寸:
Display display =getWindowManager().getDefaultDisplay();
int width = display.getWidth(); 
int height = display.getHeight();


接下来看一下如何获取屏幕的分辨率:
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float width=dm.widthPixels*dm.density;
float height=dm.heightPixels*dm.density;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章