View的觸摸事件

  1. MotionEvent
    MotionEvent是用來(lái)描述手指觸摸屏幕的事件。當(dāng)手指觸摸屏幕后,系統(tǒng)會(huì)產(chǎn)生一系列MotionEvent并發(fā)送個(gè)合適的View。
    常用事件類型有ACTION_DOWN,ACTION_MOVE和ACTION_UP。
    MotionEvent中持了觸摸事件類型,位置等信息。
    獲取事件左邊信息的方法:
    getX/getY 獲取相對(duì)于View左上角的坐標(biāo)值
    getRawX/getRawY 獲取相對(duì)于屏幕左上角的坐標(biāo)值

  2. TouchSlop
    TouchSlop是一個(gè)系統(tǒng)常量,標(biāo)識(shí)系統(tǒng)所能識(shí)別的最小滑動(dòng)距離。
    獲取方式,ViewConfiguration.get(getContext()).getScaledTouchSlop();
    在滑動(dòng)處理中,可通過(guò)此常量對(duì)滑動(dòng)進(jìn)行一下過(guò)濾處理,可獲得更好的用戶體驗(yàn)

3.Velocity
用于追蹤手指在滑動(dòng)過(guò)程中的速度。

//在View的onTouch Event中追蹤事件的滑動(dòng)速度。
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(enent);
//計(jì)算指定間隔時(shí)間中的速度,分水平和垂直方向上的速度。
//最終獲得的是此間隔內(nèi),手指滑過(guò)的像素值。有正負(fù)之分
velocityTracker.computeCurrentVelocity(1000);
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();
//當(dāng)不需要使用時(shí),記得回收
velocityTracker.clear();
velocityTracker.recycle();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容