在乙個空的acyivity上重寫ontouchevent方法做的兩點觸控(因為tp不支援三點的原因,只能做兩點的)實驗
@override
public boolean ontouchevent(motionevent event)
return false;
}
①:在第乙個點(後面簡稱點1)觸控到螢幕的時候會觸發action_down,列印結果【action_down index=0 ;id=0】;
②:點1移動觸發action_move,列印結果【action_down index=0 ;id=0】;
③:第二個點(後面簡稱點2)觸控到螢幕會觸發action_pointer_down,列印結果【action_pointer_down index=1 ;id=1】;
④:兩點一起移動觸發action_move,列印結果【action_move index=0 ;id=0】,這裡只有點1的資訊被列印出來了,如果想要操作點2,那麼在action_pointer_down的時候就應該把點2的id記下來(為什麼不記index?);
⑤:抬起點1觸發action_pointer_up,列印結果【action_pointer_up index=0 ;id=0】,列印出來的是被抬起的點1的資訊;
⑥:繼續移動點2,觸發action_move,列印結果【action_move index=0 ;id=1】,發現點2因為點1的離開,index發生了變化,但是id仍然沒變,這就解答了步驟④的問題,因為index會變化,所以不去記它,通過id去定位點才是準確;
⑦:加入點3,觸發action_pointer_down,列印結果【action_pointer_down index=0 ;id=0】,發現原本已經用過的0,又被附在了新的點上,而且index也插到了前面,可以理解為原來的點回來了;
⑧:兩點一起移動觸發action_move,列印結果【action_move index=0 ;id=0】,可以得出結論,move的時候得到的點是index為0時的點;
⑨:點2離開,觸發action_pointer_up,列印結果【action_pointer_up index=1 ;id=1】;
⑩:點1離開,此時所有點都離開了,才會觸發action_up,列印結果【action_up index=0 ;id=0】,當然列印出來的資訊,也是剩下的那個點的資訊。
但是通過event獲取每乙個點的資訊(x,y,壓力等),所呼叫的方法所需要的引數卻是index,可以index卻是有可能會變化的,那就需要通過id去找到對應的index了,findpointerindex(id)方法就是通過id得到對應的index的
android筆記 雜亂
1 請問ontextchanged,beforetextchanged和aftertextchanged這三個函式有什麼區別?這個字面上的意思應該還蠻好懂的.先看我怎麼翻譯官方描述的 a.beforetextchanged s,start,count,after 在s中從start開始的count個...
Android學習筆記
android系列 第一期 第一課 android初步認識 今天我們來初步了解一下安卓吧。首先,說到android,大家都非常熟悉了,相信都用過android手機吧,android給我們的第一印象應該是它的logo 乙個小機械人,如下圖1所示。圖1 android logo 嗯,好,認識了andro...
初學 android筆記
初學,看到哪,記到哪!隨時更新。1.activity狀態和生命週期 四種狀態 running,paused,stopped,destroyed。生命週期見下圖 2.實現兩個activity之間的跳轉 button1.setonclicklistener new button.onclickliste...