以下是要用到的主要的類
1.GestureDetector類的實(shí)例代表一個(gè)手勢(shì)檢測(cè)器,創(chuàng)建這個(gè)實(shí)例時(shí)要傳入一個(gè)GestureDetector.OnGestureListener監(jiān)聽器;
2.GestureLibrary和GestureLibraries類,GestureOverlayView組件;GestureLibrary是一個(gè)手勢(shì)庫(kù),可以理解為保存手勢(shì)的類,GestureLibraries是一個(gè)工具
類為GestureLibrary創(chuàng)建實(shí)例。 *GestureOverlayView是手勢(shì)編輯組件,可以理解為我們平常畫圖的筆,經(jīng)常用的監(jiān)聽器是
是在手勢(shì)事件完成時(shí)提供響應(yīng), public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture)這是它提供的方法,gesture就是我們畫的手勢(shì)。
3.TextToSpeech(TTL)類是android提供的自動(dòng)朗讀的一個(gè)類;
以上類的用法
1. GestureDetector
??? 第一步:創(chuàng)建實(shí)例GestureDetector detector = new GestureDetector(this,this);讓主類 implements
??? GestureDetector.OnGestureListener。它包含的處理事件有 onDown(MotionEvent e)當(dāng)觸碰事件按下時(shí)觸發(fā)該方法
??? onShowPress(MotionEvent e)當(dāng)用戶手指按下還未松開和移動(dòng)時(shí)觸發(fā)
?? onSingleTapUp(MotionEvent e)用戶手指輕擊觸摸屏?xí)r觸發(fā)
?? onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)手指在觸摸屏滾動(dòng)時(shí)觸發(fā)
?? onLongPress(MotionEvent e)長(zhǎng)按時(shí)觸發(fā)
?? onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)手指在觸摸屏上“拖過(guò)”時(shí)觸發(fā),
?? velocityX,velocityY為速度。
?? 第二步:把Activity的TouchEvent事件交給GestureDetector處理
?? @Override
?? public boolean onTouchEvent(MotionEvent event) {
?????? return detector.onTouchEvent(event);
?? }
?? 2. GestureLibrary和GestureLibraries類,GestureOverlayView組件;
????? GestureLibraries有如下幾個(gè)靜態(tài)方法來(lái)創(chuàng)建GesureLibrary的實(shí)例:
???? fromFile(String path)從path代表的文件中加載手勢(shì)庫(kù)
???? fromFile(File path)從path代表的文件中加載手勢(shì)庫(kù)
???? fromPrivateFile(Context context, String name)從指定應(yīng)用程序的數(shù)據(jù)文件夾的name文件中加載手勢(shì)庫(kù)
???? fromRawResource(Context context, int resourceId)從resourceId所代表的資源中加載手勢(shì)庫(kù)
???? GestureLibraries提供了對(duì)手勢(shì)添加等方法:
???? addGesture(String entryName, Gesture gesture)添加一個(gè)名為entryName的手勢(shì)。
???? ArrayListrecognize(Gesture gesture)從當(dāng)前手勢(shì)庫(kù)中識(shí)別與gesture匹配的全部手勢(shì)
???? boolean save()對(duì)手勢(shì)庫(kù)進(jìn)行添加,刪除后要用此方法進(jìn)行保存
???? 其他刪除等方法可以查詢API;
???? GestureOverlayView在布局中使用

在Activity中獲得

圖片描述
根據(jù)上圖中的onGesturePerformed(GestureOverlayView overlay, Gesture gesture)就可以用GestureLibrary和GestureLibraries類對(duì)gesture進(jìn)行操作了
3.TextToSpeech(TTL)類
第一步:創(chuàng)建實(shí)例, TextToSpeech textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){}//判斷TTS引擎是否裝載成功
}
});
第二步:設(shè)置語(yǔ)言,textToSpeech.setLanguage(Locale.US);不支持中文,
int result = textToSpeech.setLanguage(Locale.US);
if(result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE){}//判斷設(shè)置的語(yǔ)言是否可用
第三步:調(diào)用 speak()或者synthesizeToFile()方法
speak(CharSequence text, int queueMode, Bundle params, String utteranceId)第二個(gè)參數(shù)是有兩種模式TextToSpeech.QUEUE_ADD是添加到當(dāng)前隊(duì)列之后,TextToSpeech.QUEUE_FLUSH中斷當(dāng)前任務(wù),執(zhí)行當(dāng)前新的語(yǔ)音任務(wù)。
synthesizeToFile(CharSequence text, Bundle params, File file, String utteranceId)
第四步:關(guān)閉TTS,回收資源,textToSpeech.shutdown();
簡(jiǎn)單demo:https://github.com/islaughing/GestureStudio.git