Android 視圖座標系

1. 屏幕座標系區域劃分

先看看 android 的屏幕規劃圖。 可以很明顯的看出來, 屏幕的區域劃分作用在某一個位置。
在這裏插入圖片描述

android 由左上角頂點位置起始座標,橫向X軸開始, 往右正座標, 豎向Y軸開始, 往下正座標。
在這裏插入圖片描述

獲取當前屏幕狀態信息 APIS

// 獲取當前屏幕的寬/高。 分辨率
DisplayMetrics displayMetrics = new DisplayMetrics();
Activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// 屏幕寬/高狀態信息
displayMetrics.widthPixels;
displayMetrics.heightPixels;
// 獲取當前狀態欄的高度
方式一:
Rect rect = new Rect();
// 獲取當前APP的繪製區域, 看上圖,包含ActionBar和View的繪製佈局區域
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
rect.top

方式二:
如果當前屏幕隱藏了狀態欄的顯示, 並且還需要獲取狀態欄的高度時, 可以通過反射系統的高度屬性進行獲取
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
    result = context.getResources().getDimensionPixelSize(resourceId);
}

獲取View的座標系APIS

自定義View時, 需要詳細知道view在當前屏幕上擺放的位置。 可以通過下列api獲取到當前的絕對座標和相對座標系
在這裏插入圖片描述
通過上圖可以很清楚的認知到view方法的總結。

View 的方法 備註
getLeft() 當前View的左邊距離父容器的左邊距離
getTop() 當前View的上邊距離父容器的上邊距離
getRight() 當前View的右邊距離父容器的右邊距離
getBottom() 當前View的下邊距離父容器的下邊距離
getX() 返回getLeft()+getTranslationX()方法的總和, 當不修改translationX的值時,與getLeft()返回值相同
getY() 返回getTop()+getTranslationY()方法的總和, 當不修改translationY的值時,與geTop()返回值相同
getTranslationX() 水平移動的長度。 通常與動畫相互使用
getTranslationY() 垂直移動的長度。 通常與動畫相互使用

針對觸摸時, 獲取的視圖座標大小 MotionEvent

MotionEvent 的方法 備註
getX() 獲取當前觸摸點, 距離當前View的左邊間距
getY() 獲取當前觸摸點, 距離當前View的上邊間距
getRawX() 當前觸摸點, 距離整體屏幕的X軸座標
getRawY() 當前觸摸點, 距離整體屏幕的Y軸座標

獲取 View 的顯示座標區域

View 的方法 備註
getLocalVisibleRect() 獲取當前View位置的顯示座標,當前 view 以自己的左上角爲起點,另一個點是在自己view的右下角, 返回的X,Y軸座標, 都是相對當前自身View。
getGlobalVisibleRect() 獲取當前View位置的顯示座標, 當前 View 以屏幕的左上角爲起點, 另一個點是自己View的右下角, 返回的X,Y座標。

View 的滑動座標系

View的滑動方法 效果及描述
offsetLeftAndRight(int offset) 橫向座標滑動, 會改變當前view的真實位置。
offsetTopAndBottom(int offset) 豎向座標滑動, 會改變當前view的真實位置。
scrollBy(int x, int y) 針對傳入的X軸和Y軸進行滑動,X負值爲在當前位置往左滑, 反之亦然 參數Y與X表述相同, 僅僅只會滑動view裏面的內容, 不會真實改變view的位置, 一般用在viewgroup較多
scrollTo(int x, int y) 針對傳入的X軸和Y軸進行滑動, 滑動位置是傳入參數的父佈局座標, 與當前ParentView爲參照物。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章