Android 開發 DisplayMetrics獲取Android設備的屏幕高寬與其他信息


前言

  獲取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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM