前言
獲取Android設備的寬度與高度是一個在Android開發上經常需要處理的事情。我們在相機開發、全屏對話框、個別View的屏幕適配經常需要使用到。但是獲取屏幕高度與寬度也有很多方法與不同的結果。下面會一一總結這些方法一結果。
獲取屏幕寬度
可用顯示尺寸的絕對寬度(以像素為單位),請注意,在一些平板設備上可能存在側邊導航欄,那么這個尺寸可能會排除掉這個側邊導航欄的寬度
private void getWidth(Context context){ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int width = displayMetrics.widthPixels; }
獲取屏幕高度
可用顯示尺寸的絕對高度(以像素為單位)。請注意,在一些機型上這個尺寸可能會排除掉狀態欄或者底部導航欄的高度。
private void getHeight(Context context){ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int height = displayMetrics.heightPixels; }
用WindowManage獲取DisplayMetrics
private void getSize(Context context){ DisplayMetrics outMetrics = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(outMetrics); }
獲取包含導航欄與狀態欄的設備的實際屏幕寬高
根據此設備屏幕的實際大小獲取顯示指標,尺寸會根據顯示器的當前旋轉進行調整。
private void getDeviceRealHeight(Context context){ DisplayMetrics outMetrics = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getRealMetrics(outMetrics); int deviceRealHeightPixels = outMetrics.heightPixels; }
獲取密度信息
private void getDensity(Context context){ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); float density = displayMetrics.density;//屏幕密度 float densityDpi = displayMetrics.densityDpi;//每英寸包含的密度 float scaledDensity = displayMetrics.scaledDensity;//屏幕密度比例 }
End