简述:

Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。


//get the screen size
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight= dm.heightPixels;
int screenWidth =dm.widthPixels;

构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity 的Handle ,此时, getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”



当然这里面也可以通过一定的方法来获取屏幕密度



/**
* 获取屏幕的像素
*/
public int getScreenWidthMetrics(Activity activity){

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

return displayMetrics.widthPixels;
}
public int getScreenHeigthMetrics(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.heightPixels;
}

/**
* 获取屏幕的像素密度
* @param activity
* @return
*/
public float getScreenDensity(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.density;
}

public float getScreenDensityDip(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.densityDpi;
}