總結(jié):
view下的方法:
getX(): 該view坐標(biāo)系中,x坐標(biāo)值
getY():該view坐標(biāo)系中爆土,y坐標(biāo)值
getLeft():該view距離父布局左邊的距離
getRight():該view距離父布局右邊的距離
getTop():該view距離父布局上邊的距離
getBottom():該view距離父布局下邊的距離
getTranslationX():該view的橫向偏移距離,初始為0
getTranslationY():該view的縱向偏移距離履肃,初始為0
MotionEvent下的方法:
getX(): 該view坐標(biāo)系中查描,手指觸控點(diǎn)的x坐標(biāo)值
getY():該view坐標(biāo)系中痴鳄,手指觸控點(diǎn)的y坐標(biāo)值
getRawX():屏幕坐標(biāo)系中,手指觸控點(diǎn)的x坐標(biāo)值
getRawY():屏幕坐標(biāo)系中县貌,手指觸控點(diǎn)的y坐標(biāo)值
黑色的區(qū)域為研究對象view(后面我們稱之為: 小v)术陶,淡紅色區(qū)域后面我們稱之為:大v:
android3.0以前,view的位置參數(shù)只有top煤痕,left梧宫,right征候,bottom。3.0以后祟敛,增加了額外的疤坝,x,y馆铁,translationX跑揉,translationY(他們各自擁有g(shù)et/set方法)。x埠巨,y是代表view的左上角的坐標(biāo)历谍,而translationX,translationY代表view左上角相對于父容器在各自方向的偏移量辣垒。如本例望侈,小v 的x,y代表他在 大v 的坐標(biāo)系中左上角的坐標(biāo)勋桶。
其中脱衙,View在平移的過程中,top和left表示的是原始左上角的位置信息例驹,所以其值不會發(fā)生改變捐韩,此時發(fā)生改變的是x,y鹃锈,translationX荤胁,translationY。所以可以得出如下公式:
x = left + translationX
y = top + translationY
以下粘貼出我的實(shí)驗過程:
java代碼片段:
xml代碼:
在小米note pro測試屎债,此機(jī)型分辨率為1440*2560仅政,ppi大約640左右。根據(jù)dp*ppi/160 = px盆驹。
100dp等于400px圆丹,顯然和理解的是一樣的。
當(dāng)點(diǎn)擊小v的中心部分時召娜,log日志如下运褪。
顯然和理解的也是一樣的。
第一篇記錄的文章玖瘸,如有錯誤秸讹,歡迎指出。我是二毛雅倒,熱愛技術(shù)璃诀,熱愛分享,我為自己帶眼C锵弧A踊丁棕诵!
最后的最后,放一張引狼圖凿将,喜歡的右鍵吧