view坐標.png
Position
1 getLeft(),getTop(),getRight(),getBottom()
- getLeft()
Left position of this view relative to its parent.
view左邊界相對于父布局左邊界的像素個數(shù); - getRight()
view右邊界相對于父布局左邊界的像素個數(shù)骨坑;
getRight() = getLeft()+getWidth();
需要注意的是,View.getTop()、View.getLeft()次和、View.getBottom()壮不、View.getRight()這四個方法獲取的坐標表示的是View原始狀態(tài)時相對于父容器的坐標,對View進行平移操作并不會改變著四個方法的返回值。
2 getX(),getY()
getX()與getY()方法獲取的是View左上角相對于父容器的坐標倦踢,當View沒有發(fā)生平移操作時,getX()==getLeft()侠草、getY==getTop()辱挥。
3 getTranslationX(),getTranslationY()
translationX與 translationY是View左上角相對于父容器的偏移量:translationX = getX() - getLeft(),當View未發(fā)生平移操作時边涕,translationX 與translationY都為0晤碘。
4 View.getLocationOnScreen(int[] position);
獲取View相對于整個屏幕的坐標。
5 View.getLocationInWindow(int[] position);
獲取View相對于Window的坐標(忽略狀態(tài)欄及ActionBar)功蜓。
Size
- getMeasuredWidth() 與 getWidth()
①getMeasuredWidth方法獲得的值是setMeasuredDimension方法設置的值园爷,它的值在measure方法運行后就會確定。
②getWidth方法獲得是layout方法中傳遞的四個參數(shù)中的mRight-mLeft式撼,它的值是在layout方法運行后確定的童社。
③一般情況下在onLayout方法中使用getMeasuredWidth方法,而在除onLayout方法之外的地方用getWidth方法著隆。
Layout
void layout (int l, int t, int r, int b)
子View相對于父view的位置扰楼。
注意:View的寬高是有top、left美浦、right灭抑、bottom參數(shù)決定的。在View發(fā)生改變的過程中抵代,top,left等值代表原始位置忘嫉,是不會改變的荤牍。改變的只有X、Y庆冕,translationX康吵、Y。
觸摸點MotionEvent的坐標:
用戶點擊的坐標.png
- event.getX():表示的是觸摸的點距離控件左邊界的距離访递。
- event.getY():表示的是觸摸的點距離控件上邊界的距離晦嵌。
- event.getRawX:表示的是觸摸點距離屏幕左邊界的距離。
- event.getRawY:表示的是觸摸點距離屏幕上邊界的距離。