Android中獲取屏幕相關信息(屏幕大小,狀態欄、標題欄高度)

Android比Iphone煩的多的一點就是:屏幕尺寸實在是太多瞭!
    下面介紹下在Android中如何獲取屏幕相關的信息。
    1.屏幕尺寸,源代碼如下:
DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int screenWidth=metrics.widthPixels;            //屏幕寬度
    int .screenHeight=metrics.heightPixels;        //屏幕高度
     這段代碼可以插入到Activity的onCreate()函數中。

    2.獲取標題欄、狀態欄高度:
Rect rect = new Rect();

    Window win = this.getWindow();

    win.getDecorView().getWindowVisibleDisplayFrame(rect);

    int statusBarHeight = rect.top;

    int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop();

    int titleBarHeight = contentViewTop – Variable.statusBarHeight;   
//statusBarHeight為狀態欄高度,titleBarHeight為標題欄高度
      另外,這段代碼不能插入Activity的onCreate()和onResume()函數中,否則得到的兩個值都為0 。我的做法是將之插入到onPause()函數中,成功得到兩個正確值。據說可以插入到按鈕等組件的回調函數中,但是本人沒有實驗,就不妄下結論瞭。

 

摘自 tobacco5648的專欄

發佈留言