1. 程式人生 > >如何獲取控制元件的座標位置

如何獲取控制元件的座標位置

//location [0]是x座標,location [1]是y座標
int[] location = new int[2] ;
// 獲取在當前視窗內的絕對座標
view.getLocationInWindow(location);
// 獲取在整個螢幕內的絕對座標,注意這個值是要從螢幕頂端算起,也就是包括了通知欄的高度。
view.getLocationOnScreen(location);

另外,getLeft , getTop, getBottom, getRight, 這一組是獲取相對在它父窗口裡的座標。

如果在Activity的OnCreate()事件輸出那些引數,是全為0,要等UI控制元件都載入完了才能獲取到這些。在onWindowFocusChanged(boolean hasFocus)中獲取為好

View.getLocationInWindow()和 View.getLocationOnScreen()在window佔據全部screen時,返回值相同,不同的典型情況是在Dialog中時。當Dialog出現在螢幕中間時,View.getLocationOnScreen()取得的值要比View.getLocationInWindow()取得的值要大。