天天看點

Android 中狀态欄、标題欄、View的大小及區分

1、獲得狀态欄的高度(狀态欄相對Window的位置):

Rect frame = new Rect();

getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);

int statusBarHeight = frame.top;

2、獲得mView中顯示内容的Top (不包括标題欄,指的是相對Window的位置,即:沒有标題欄的時候,指的是狀态欄的bottom在Window中的坐标;有标題欄的時候指的是标題欄的bottom在Window中的坐标)

getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  

3、獲得view中顯示内容,與window無關,隻和父控件有關

如果布局檔案中mView match_parent 那麼top=0,bottom=mView.getHeight();

4、獲得螢幕的寬高:

(1)

getResources().getDisplayMetrics().heightPixels;

getResources().getDisplayMetrics().widthPixels;

(2)

WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);

int width = wm.getDefaultDisplay().getWidth();//螢幕寬度

int height = wm.getDefaultDisplay().getHeight();//螢幕高度

(3)

DisplayMetrics mDisplayMetrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);

int W = mDisplayMetrics.widthPixels;

int H = mDisplayMetrics.heightPixels;

(4)過時方法

Display mDisplay = getWindowManager().getDefaultDisplay();

int W = mDisplay.getWidth();

int H = mDisplay.getHeight();

    本文轉自 一點點征服   部落格園部落格,原文連結:http://www.cnblogs.com/ldq2016/p/6671924.html,如需轉載請自行聯系原作者

繼續閱讀