編輯:關於android開發
一種用於手勢輸入的透明覆蓋層,可以覆蓋在其他空間的上方,也可包含在其他控件 android.gesture.GestureOverlayView
需要用GesturesBuilder,如果沒有就安裝這個app
其實這是一個Sample的,用eclipse和android studio中各有不同方法導入,在版本android2.33中有
在GesturesBuilder畫對應的手勢和命名之後,可以在文件夾mmt中的sdcard中有個gestures文件,把這個文件保存起來,導入到你的項目的res文件夾中
有三種監聽器
實現在一張圖片上各種自定義手勢的效果
可以在面板中的Advanced有GestureOverlayView,或者直接在AndroidMainFest.XML編寫
<android.gesture.GestureOverlayView
android:id="@+id/gestureOverlayView"
android:layout_width="180dp"
android:layout_height="180dp" >
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"/
</android.gesture.GestureOverlayView>
我的是res文件夾下新建的raw文件夾。設定了這三個手勢
//這裡用到final是由於匿名類(內部類)用到外部類,涉及到生命周期的緣故
final GestureLibrary library =GestureLibraries.fromRawResource(MainActivity.this, R.raw.gestures);
library.load();
gestureOverlayView.addOnGesturePerformedListener(new OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
// TODO Auto-generated method stub
//識別手勢,返回值是一個手勢的集合
ArrayList<Prediction> mygesture = library.recognize(gesture);
Prediction prediction = mygesture.get(0);
/*
*score是指相似度,就是有點類似在這個誤差范圍內都認為是這個手勢
*至於這個的數值需要自己調試,找一個合適的值,值越大,就越要接近原來的
* name就是你的手勢的名字
*/
if (prediction.score >= 5.0 ) {
if (prediction.name.equals("exit")) {
finish();
}else if(prediction.name.equals("next")){
Toast.makeText(MainActivity.this, "下一個", Toast.LENGTH_SHORT).show();
}else if (prediction.name.equals("previous")) {
Toast.makeText(MainActivity.this, "前一個", Toast.LENGTH_SHORT).show();
}
}else {
Toast.makeText(MainActivity.this, "沒有這個手勢", Toast.LENGTH_SHORT).show();
}
}
});
效果
android四大組件之Broadcast,androidbroadcast 廣播的概念 現實中:我們常常使用電台通過發送廣播發布消息,買個收音機,就能收聽 Andro
深入剖析Android四大組件(九)——Activity之AppCompatActivity與toolbar的結合 對於技術類的博客,我們永遠追尋最新API腳步,在API
CAS實現SSO單點登錄原理1.CAS簡介1.1.What is CAS?CAS(Central Authentication Service) 是Yale大學發起的一個
Android性能優化之加快應用啟動速度 應用的啟動 啟動方式 通常來說,在安卓中應用的啟動方式分為兩種:冷啟動和熱啟動。 1、冷啟動:當啟動應用時,後台沒有該應用的進