android 獲取控制項在螢幕中位置

2021-07-08 22:18:46 字數 577 閱讀 6838

專案需要在ui中獲取其中乙個控制項的位置,在oncreate中直接獲取發現引數全為零,獲取失敗。網上查詢知道原來需要等到整個換麵載入完才可以獲取到位置資訊。特來記錄下以備以後查詢

獲取空間螢幕位置:

rect rect = new rect();

int location = new int[2];

mplaysu***ceview.getlocationonscreen(location);  //獲取螢幕中位置

rect.left = location[0];

rect.top = location[1];

rect.right = rect.left + mplaysu***ceview.getwidth();

rect.bottom = rect.top + mplaysu***ceview.getheight();

ui載入完標誌:

isfirst = true;

@override

public void onwindowfocuschanged(boolean hasfocus)

做了isfirst標誌,記錄是否是新建的時候進入。

Android得到控制項在螢幕中的座標

計算該檢視在全域性座標系中的x,y值,注意這個值是要從螢幕頂端算起,也就是索包括了通知欄的高度 獲取在當前螢幕內的絕對座標 getlocationinwindow 計算該檢視在它所在的widnow的座標x,y值,獲取在整個視窗內的絕對座標 不是很理解 getleft gettop getbottom...

Android 獲取view在螢幕中的位置

getlocalvisiblerect 返回乙個填充的rect物件,感覺是這個view的rect大小,left,top取到的都是0 getglobalvisiblerect 獲取全域性座標系的乙個檢視區域,返回乙個填充的rect物件 該rect是基於總整個螢幕的 getlocationonscree...

Android 獲取view在螢幕中的位置

getlocalvisiblerect,返回乙個填充的rect物件,感覺是這個view的rect大小,left,top取到的都是0 getglobalvisiblerect,獲取全域性座標系的乙個檢視區域,返回乙個填充的rect物件 該rect是基於總整個螢幕的 getlocationonscree...