Android MotionEvent中g(shù)etX()和getRawX()的區(qū)別實(shí)例詳解
Android MotionEvent中g(shù)etX()和getRawX()的區(qū)別實(shí)例詳解
實(shí)例代碼:
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
int x = 0;
int y = 0;
int rawx = 0;
int rawy = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button);
btn.setOnTouchListener(this);
}
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x = (int) event.getX();
y = (int) event.getY();
rawx = (int) event.getRawX();
rawy = (int) event.getRawY();
Log.d("DEBUG", "getX=" + x + "getY=" + y + "n" + "getRawX=" + rawx
+ "getRawY=" + rawy + "n");
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
}
結(jié)論:
當(dāng)你觸到按鈕時(shí),x,y是相對(duì)于該按鈕左上點(diǎn)(控件本身)的相對(duì)位置。
而rawx,rawy始終是相對(duì)于屏幕的位置。

可知:
- getRowX:觸摸點(diǎn)相對(duì)于屏幕的坐標(biāo)
- getX: 觸摸點(diǎn)相對(duì)于按鈕的坐標(biāo)
- getTop: 按鈕左上角相對(duì)于父view(LinerLayout)的y坐標(biāo)
- getLeft: 按鈕左上角相對(duì)于父view(LinerLayout)的x坐標(biāo)
可以想象 getRight()等同于下面的計(jì)算:getLeft()+getWidth()。
getX()是表示W(wǎng)idget相對(duì)于自身左上角的x坐標(biāo),而getRawX()是表示相對(duì)于屏幕左上角的x坐標(biāo)值(注意:這個(gè)屏幕左上角是手機(jī)屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一樣的道理
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android APP檢測(cè)實(shí)體按鍵事件詳解
這篇文章主要為大家詳細(xì)介紹了Android APP檢測(cè)實(shí)體按鍵事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Android 通過(guò)網(wǎng)絡(luò)圖片路徑查看圖片實(shí)例詳解
這篇文章主要介紹了Android 通過(guò)網(wǎng)絡(luò)圖片路徑查看圖片實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
Android 通過(guò)觸摸動(dòng)態(tài)地在屏幕上畫(huà)矩形效果
在屏幕上用手指畫(huà)出一個(gè)區(qū)域,返回所圈的區(qū)域坐標(biāo)。通過(guò)自定義view設(shè)置畫(huà)筆及對(duì)應(yīng)參數(shù),在onTouchEvent()回調(diào)函數(shù)里,對(duì)觸摸事件進(jìn)行判斷。畫(huà)出矩形圖形,具體實(shí)現(xiàn)代碼大家參考下本文2017-07-07
分享一個(gè)Android設(shè)置圓形圖片的特別方法
圓形圖片想必是項(xiàng)目開(kāi)發(fā)中也是不少用的一個(gè)知識(shí)點(diǎn)吧。那么這里學(xué)習(xí)一下簡(jiǎn)單的制作圓形圖片,這個(gè)方法不用于平時(shí)的實(shí)現(xiàn)方法,有需要的可以參考借鑒。2016-09-09
android中Invalidate和postInvalidate的更新view區(qū)別
Android中實(shí)現(xiàn)view的更新有兩組方法,一組是invalidate,另一組是postInvalidate,其中前者是在UI線程自身中使用,而后者在非UI線程中使用,感興趣的朋友可以了解下哦2013-01-01
Android 自定義View實(shí)現(xiàn)芝麻分曲線圖效果
這篇文章主要介紹了Android 自定義View實(shí)現(xiàn)芝麻分曲線圖效果的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11

