新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 本質(zhì)需求 Android多點觸控開發(fā)原理

本質(zhì)需求 Android多點觸控開發(fā)原理

作者: 時間:2012-04-21 來源:網(wǎng)絡(luò) 收藏
在本質(zhì)上需要LCD驅(qū)動和程序本身設(shè)計上支持,目前市面上HTC、Motorola和Samsung等知名廠商只要使用電容屏觸控原理的手機均可以支持Multitouch技術(shù),對于網(wǎng)頁縮放、手勢操作上有更好的用戶體驗。

平臺上事件均使用了MotionEvent對象方式處理,比如開始觸控時會觸發(fā)ACTION_DOWN而移動操作時為ACTION_MOVE最終放開手指時觸發(fā)ACTION_UP事件。當然還有用戶無規(guī)則的操作可能觸發(fā)ACTION_CANCEL這個動作。

  首先開發(fā)網(wǎng)提醒大家需要和應(yīng)用軟件兩個支持才能實現(xiàn),所以部分比較老的,比如Android 2.1以前或在北美上市的手機可能無法支持多點觸控在固件上,由于Apple專利原因在歐洲和亞太地區(qū)的Android 2.1以后的新款機型固件均已經(jīng)在屏幕驅(qū)動中支持,同時模擬器也無法實現(xiàn)多點觸控的測試。

  下面Android123一起用Android 2.0或以上SDK中的方法來實現(xiàn)如何通過應(yīng)用層支持多點觸控操作,對于常規(guī)的控件觸控操作在內(nèi)部為View的setOnTouchListener()接口實現(xiàn)的onTouchEvent()方法來處理。對于onTouchEvent方法的參數(shù)MotionEvent我們可以詳細處理來實現(xiàn)對多點觸控的了解,比如
  event.getAction() //獲取觸控動作比如ACTION_DOWN

  event.getPointerCount(); //獲取觸控點的數(shù)量,比如2則可能是兩個手指同時按壓屏幕

  event.getPointerId(nID); //對于每個觸控的點的細節(jié),我們可以通過一個循環(huán)執(zhí)行

getPointerId方法獲取索引

  event.getX(nID); //獲取第nID個觸控點的x位置

  event.getY(nID); //獲取第nID個點觸控的y位置

  event.getPressure(nID); //LCD可以感應(yīng)出用戶的手指壓力,當然具體的級別由驅(qū)動和物理硬件決定的

  event.getDownTime() //按下開始時間

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

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

  有關(guān)Android多點觸控的更詳細技術(shù)由于目前兼容性和固件問題android123將會在以后的內(nèi)容中詳細討論,這里給大家起到拋磚引玉的作用。

電容屏相關(guān)文章:電容屏原理


關(guān)鍵詞: LCD驅(qū)動 多點觸控 Android

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉