Android多點觸控開發原理

來源:互聯網
上載者:User
 

 Android多點觸控在本質上需要LCD驅動和程式本身設計上支援,目前市面上HTC、Motorola和Samsung等知名廠商只要使用 電容屏觸控原理的手機均可以支援多點觸控Multitouch技術,對於網頁縮放、手勢操作上有更好的使用者體驗。 在Android平台上事件均使用了MotionEvent對象方式處理,比如開始觸控時會觸發ACTION_DOWN而移動操作時為 ACTION_MOVE最終放開手指時觸發ACTION_UP事件。當然還有使用者無規則的操作可能觸發ACTION_CANCEL這個動作。

  首先提醒大家多點觸控需要LCD驅動和應用軟體兩個支援才能實現,所以部分比較老的,比如Android 2.1以前或在北美上市的手機可能無法支援多點觸控在韌體上,由於Apple專利原因在歐洲和亞太地區的Android 2.1以後的新款機型韌體均已經在螢幕驅動中支援,同時模擬器也無法實現多點觸控的測試。

  下面Android123一起用Android 2.0或以上SDK中的方法來實現如何通過應用程式層支援多點觸控操作,對於常規的控制項觸控操作在內部為View的setOnTouchListener() 介面實現的onTouchEvent()方法來處理。對於onTouchEvent方法的參數MotionEvent我們可以詳細處理來實現對多點觸控的 瞭解,比如

   event.getAction() //擷取觸控動作比如ACTION_DOWN
   event.getPointerCount(); //擷取觸控點的數量,比如2則可能是兩個手指同時按壓螢幕
   event.getPointerId(nID); //對於每個觸控的點的細節,我們可以通過一個迴圈執行getPointerId方法擷取索引
   event.getX(nID); //擷取第nID個觸控點的x位置
   event.getY(nID); //擷取第nID個點觸控的y位置
   event.getPressure(nID); //LCD可以感應出使用者的手指壓力,當然具體的層級由驅動和物理硬體決定的
 
  event.getDownTime() //按下開始時間

  event.getEventTime() // 事件結束時間

  event.getEventTime()-event.getDownTime()); //總共按下時花費時間

   有關Android多點觸控的更詳細技術由於目前相容性和韌體問題將會在以後的內容中詳細討論,這裡給大家起到拋磚

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.