## 屏幕分辨率
手機的屏幕分辨率信息包括:屏幕的寬度、屏幕的高度、屏幕的像素密度。
在App編碼中時常要取手機的屏幕分辨率(如當前屏幕的寬和高),然后動態調整界面上的布局。在代碼中獲取分辨率就是想辦法獲得DisplayMetrics對象,然后從該對象中獲得寬度、高度、像素密度等信息。下面是DisplayMetrics類的常用屬性說明。
* widthPixels:以px為單位計量的寬度值。
* heightPixels:以px為單位計量的高度值。
* density:像素密度,即一個dp單位包含多少個px單位。
下面是獲取當前屏幕的寬度、高度、像素密度的代碼示例。
~~~
// 獲得屏幕的寬度
public static int getScreenWidth(Context ctx) {
// 從系統服務中獲取窗口管理器
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
// 從默認顯示器中獲取顯示參數保存到dm對象中
wm.getDefaultDisplay().getMetrics(dm);
return dm.widthPixels; // 返回屏幕的寬度數值
}
// 獲得屏幕的高度
public static int getScreenHeight(Context ctx) {
// 從系統服務中獲取窗口管理器
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
// 從默認顯示器中獲取顯示參數保存到dm對象中
wm.getDefaultDisplay().getMetrics(dm);
return dm.heightPixels; // 返回屏幕的高度數值
}
// 獲得屏幕的像素密度
public static float getScreenDensity(Context ctx) {
// 從系統服務中獲取窗口管理器
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
// 從默認顯示器中獲取顯示參數保存到dm對象中
wm.getDefaultDisplay().getMetrics(dm);
return dm.density; // 返回屏幕的像素密度數值
}
~~~
如圖所示,像素分辨率是1440*2560,像素密度是3.5,160dpi時,像素密度是1,當設備是560dpi時,像素密度就是3.5
