Android 手势识别控件 GestureOverlayView
2014-05-09 15:55
453 查看
手势识别控件GestureOverlayView的试用方法
首先在布局文件里添加GestureOverlayView<android.gesture.GestureOverlayView android:id="@+id/gestures_overlay" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1.0" <!-- android:gestureStrokeType 手势是一笔构成或多笔 --> android:gestureStrokeType="multiple" > </android.gesture.GestureOverlayView>
这里需要注意控件名称不可以为GestureOverlayView,而是android.gesture.GestureOverlayView
然后添加手势
这里需要3个对象 分别是:
GestureOverlayView overlay = null;
GestureLibrary library = null;
Gesture gesture = null;[/code]overlay是你的手势控件
library用于存储手势
gesture是你画的手势
监听手势控件实现OnGestureListener接口重写:
@Override public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) { // TODO Auto-generated method stub } @Override public void onGesture(GestureOverlayView overlay, MotionEvent event) { // TODO Auto-generated method stub } @Override public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) { // TODO Auto-generated method stub //得到手势 gesture = overlay.getGesture(); } @Override public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) { // TODO Auto-generated method stub }保存手势 存到本地文件:
library = GestureLibraries.fromFile(libraryFile);
//给手势取名 library.addGesture(gestureName, gesture); library.save();
查看你添加的手势:
GestureLibrary library = GestureLibraries .fromFile(gestureFiles); if (library.load()) { for (String name : library.getGestureEntries()) { for (Gesture gesture : library.getGestures(name)) { final Bitmap bitmap = gesture.toBitmap( borderLength, borderLength, mThumbnailInset, mPathColor); } } }
使用手势
在另一个界面在添加一个手势控件并添加手势触发事件
overlay.addOnGesturePerformedListener(new OnGesturePerformedListener() { @Override public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { // TODO Auto-generated method stub List<Prediction> predictions = new ArrayList<Prediction>(); File gestureFile = new File(AppData.GESTURE_PATH); File[] gestureFiles = gestureFile.listFiles(); for (int i = 0; i < gestureFiles.length; i++) { library = GestureLibraries.fromFile(gestureFiles[i]); if (library.load()) { List<Prediction> list = library.recognize(gesture); for (Prediction prediction : list) { predictions.add(prediction); } } } double maxScore = predictions.get(0).score; String maxName = predictions.get(0).name; for (Prediction prediction : predictions) { if (maxScore < prediction.score) { maxScore = prediction.score; maxName = prediction.name; } } if (maxScore > 2) { execute(maxName); } else { // Toast.makeText(context, "未找到相应的手势", // Toast.LENGTH_LONG).show(); } } });第一次发博客 以前做的很多东西都忘了每次用的时候都要上网找 所以在此记录 以后养成一种习惯
相关文章推荐
- Android使用GestureOverlayView控件实现手势识别
- 【Android界面实现】使用GestureOverlayView控件实现手势识别
- 使用GestureOverlayView控件实现手势识别
- Android:UI控件GestureOverlayView、gesture、手势
- Android入门(54)——第九章 使用GestureOverlayView进行手势识别
- Android手势识别GestureOverlayView手势自动消除和多笔画识别问题
- Android学习(十六) 通过GestureOverlayView进行手势识别
- 使用GestureOverlayView控件实现手势识别
- Android--GestureOverlayView,手势识别
- Android--GestureOverlayView,手势识别
- 【手势识别の终极版】GestureOverlayView
- GestureOverlayView 初体验之手势识别
- 手势识别(GestureOverlayView)
- GestureOverlayView手势识别(手势输入数字)
- GestureOverlayView(手势识别2)
- Android手势源码浅析-----手势绘制(GestureOverlayView)
- Android手势源码浅析-----手势绘制(GestureOverlayView)
- 手势识别GestureOverlayView
- Android手势源码浅析-----手势绘制(GestureOverlayView)
- 通过GestureOverlayView手势库来识别手写的字