谷歌眼鏡GDK開發指南之觸控手勢

2021-06-20 07:04:24 字數 2726 閱讀 3125

可以通過android sdk訪問glass觸控板的原始資料。但gdk提供乙個

gesture detector ,可以自動識別通用手勢,包括觸控、滑動和滾動。

通過d-pad keys識別手勢

預設情況下,glass系統會將簡單的手勢轉換為d-pad keys事件。可以監聽onkeydown() 和 onkeyup() 事件來處理d-pad keys:

1、觸控事件轉義為 keycode_dpad_center

2、相機按鈕按下事件轉義為 keycode_camera.

3、下滑事件轉移為 keycode_back

這是一小段觸控事件的**:

public class myactivity extends activity 

...return false;

}}

通過gesture detector識別

使用gesture detector可以識別更多複雜的手勢,例如多點觸控或滾動。複雜的手勢沒有對應的d-pad key。

你可以實現 gesturedetector 提供的監聽介面來通知 gesture

識別activity層級的手勢

1、建立乙個 gesturedetector 的監聽來處理識別的手勢

2、重寫activity的 ongenericmotionevent() 方法,傳入motion events給gesture detector的onmotionevent()方法

當乙個motion時間發生時,系統將它傳給gesture detector。如果被識別了,gesture detector通知相關的監聽介面來處理事件。

public class mainactivity extends activity 

private gesturedetector creategesturedetector(context context) else if (gesture == gesture.two_tap) else if (gesture == gesture.swipe_right) else if (gesture == gesture.swipe_left)

return false;

}});

gesturedetector.setfingerlistener(new gesturedetector.fingerlistener()

});gesturedetector.setscrolllistener(new gesturedetector.scrolllistener()

});return gesturedetector;}/*

* send generic motion events to the gesture detector

*/@override

public boolean ongenericmotionevent(motionevent event)

return false;

}}

識別view層級的手勢

1、建立 乙個自定義view並重寫 dispatchgenericfocusedevent() 方法。當乙個motion 時間發生時,這個方法傳入motion事件給gesture detector。

2、設定view為focusable ,以便當view獲取焦點的時候能檢測到事件。

3、建立乙個 gesturedetector 的監聽來處理識別的手勢

當gesture detector識別到乙個motion 的時候,gesture detector通知相關的監聽介面來處理事件。

/**

* textview that handles touchpad input (currently only tap).

*/public class touchpadhandlingtextview extends textview

implements onattachstatechangelistener

public touchpadhandlingtextview(context context)

@override

public void onviewattachedtowindow(view v)

@override

public void onviewdetachedfromwindow(view v)

/*** pass a motionevent into the gesture detector

*/@override

public boolean dispatchgenericfocusedevent(motionevent event)

return super.dispatchgenericfocusedevent(event);

}/**

* create gesture detector that triggers onclicklistener. implement

* onclicklistener in your activity and override

* onclick() to handle the "tap" gesture.

*/private gesturedetector creategesturedetector(context context)

return false;

}});

return gd;

}}

Struts開發指南之安裝與使用

struts開發指南之安裝與使用 struts可以執行在任何乙個支援jsp1.2和servlet2.3的web container中struts將所有的請求提交到同乙個中心控制器,org.apache.struts.action.actionservlet 類 web.xml配置 servlet n...

OpenTSDB 開發指南之 Api運算元據

引數 說明example summary 返回主要摘要 api put?summary details 返回詳細資訊 api put?details sync 是否同步,即是否等待資料都寫入成功後才返回結果 api put?sync sync timeout 返回結果之前的等待時間 api put ...

Odoo開發指南之 單元測試

unittest單元測試 unittest單元測試框架不僅可以適用於單元測試,還可以適用web自動化測試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。今天就總結下如何使用unittest單元測試框架來進行odoo的自動化測試。uni...