最近學(xué)習(xí)了一下View的坐標系负蚊,在此記錄一下神妹。
其實感覺看懂了下面這張圖,也就基本可以理解View的坐標系了家妆。
圖片來自網(wǎng)絡(luò)
屏幕的左上角為(0, 0)
View的幾個方法
getLeft()
是view自身的左邊到其父布局左邊的距離鸵荠,一定記住是距父布局而不是距屏幕,其他的幾個方法類似getTop()
是view自身的頂邊到其父布局頂邊的距離getRight()
是view自身的右邊到其父布局左邊的距離getBottom()
是view自身的底邊到其父布局頂邊的距離getHeight()
獲取控件自身的高度getWidth()
獲取控件自身的寬度
/**
* Return the width of the your view.
*
* @return The width of your view, in pixels.
*/
@ViewDebug.ExportedProperty(category = "layout")
public final int getWidth() {
return mRight - mLeft;
}
/**
* Return the height of your view.
*
* @return The height of your view, in pixels.
*/
@ViewDebug.ExportedProperty(category = "layout")
public final int getHeight() {
return mBottom - mTop;
}
其實查看了View的源碼不難發(fā)現(xiàn)伤极,實際上寬度是通過計算mRight - mLeft
得到的腰鬼,而高度則是mBottom - mTop
得到的
MotionEvent的幾個方法
getX()
獲取點擊事件相對控件自己左邊的x軸坐標,即點擊事件距離控件自己左邊的距離getY()
獲取點擊事件相對控件自己頂邊的y軸坐標塑荒,即點擊事件距離控件自己頂邊的距離getRawX()
獲取點擊事件相對整個屏幕左邊的x軸坐標熄赡,即點擊事件距離整個屏幕左邊的距離getRawY()
獲取點擊事件相對整個屏幕頂邊的y軸坐標,即點擊事件距離整個屏幕頂邊的距離
大概就是這些齿税,以后再補充彼硫。
今年要多學(xué)習(xí),并且養(yǎng)成記錄和寫博客的好習(xí)慣!堅持拧篮!