<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_weight="1"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="0dp"><ImageViewandroid:id="@+id/my_gesture"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"/><ImageViewandroid:id="@+id/old_gesture"<--!找到手势库中的对应手势显示在这个ImageView上-->android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"/></LinearLayout><android.gesture.GestureOverlayViewandroid:background="#191919"android:id="@+id/draw_gestrue"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:gestureStrokeType="multiple"android:gestureStrokeWidth="5"android:gestureColor="#ffb200"android:fadeOffset="3000"/></LinearLayout>下面是一个可以书写的文本区域,调用的是Android中的gestureOverlayView/***手势库*/publicclassMainActivityextendsAppCompatActivity{privateImageViewmShowImage,mOldImage;privateGestureOverlayViewmGestureDraw;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main3);//GestureLibraries.fromFile();mShowImage=(ImageView)findViewById(R.id.my_gesture);mOldImage=(ImageView)findViewById(R.id.old_gesture);mGestureDraw=(GestureOverlayView)findViewById(R.id.draw_gestrue);mGestureDraw.addOnGesturePerformedListener(newGestureOverlayView.OnGesturePerformedListener(){@OverridepublicvoidonGesturePerformed(GestureOverlayViewoverlay,Gesturegesture){GestureLibrarylibrary=GestureLibraries.fromFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/gesture");if(library.load()){Log.i("gesture","加载");}else{Log.i("gesture","未加载");}Bitmapbitmap=gesture.toBitmap(200,200,10,Color.RED);mShowImage.setImageBitmap(bitmap);//将我们绘制的手势与手势库中存储的手势进行对比查询出最相近的手势ArrayList<Prediction>recognize=library.recognize(gesture);if(recognize.size()>0){Toast.makeText(MainActivity3.this,"找到手势"+recognize.size(),Toast.LENGTH_SHORT).show();for(Predictionprediction:recognize){if(prediction.score>5.0f){//相识度的判断//ArrayList<Gesture>gestures=library.getGestures(prediction.name);//Bitmapbitmap1=gestures.get(0).toBitmap(200,200,10,Color.RED);//mOldImage.setImageBitmap(bitmap1);Toast.makeText(MainActivity.this,"手势相似度"+prediction.score,Toast.LENGTH_SHORT).show();}}}else{Toast.makeText(MainActivity.this,"没找手势"+recognize.size(),Toast.LENGTH_SHORT).show();}//手势添加到手势类库library.addGesture("gesture",gesture);//保存手势library.save();}});}}/***演示了手势的方法手势方法的调用时机*/publicclassMainActivityextendsAppCompatActivityimplementsGestureDetector.OnGestureListener{privateGestureDetectormGesture;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/***1、创建一个手势*/mGesture=newGestureDetector(this,this);}/***2、将我们的Touch事件传递给我们的手势*@paramevent*@return*/@OverridepublicbooleanonTouchEvent(MotionEventevent){returnmGesture.onTouchEvent(event);}/***摁下*@parame*@return*/@OverridepublicbooleanonDown(MotionEvente){Log.i("gesture","onDown");returnfalse;}/***按下未移动*@parame*/@OverridepublicvoidonShowPress(MotionEvente){Log.i("gesture","onShowPress");}/***轻轻点*@parame*@return*/@OverridepublicbooleanonSingleTapUp(MotionEvente){Log.i("gesture","onSingleTapUp");returnfalse;}/***滑动*@parame1起点并且这个起点不移动*@parame2结束点这点是变化的*@paramdistanceXe2到上一个e2的X距离*@paramdistanceYe2到上一个e2的Y距离*@return*/@OverridepublicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){Log.i("gesture","onScrolle1:X"+e1.getX()+":Y"+e1.getY()+"e2:X"+e2.getX()+":Y"+e2.getY()+"distanceX:"+distanceX+"distanceY:"+distanceY);returnfalse;}/***长摁*@parame*/@OverridepublicvoidonLongPress(MotionEvente){Log.i("gesture","onLongPress");}/***快速滑动*@parame1摁下位置*@parame2结束位置*@paramvelocityXe1到e2的X速率*@paramvelocityYe1到e2的Y速率*@return*/@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){Log.i("gesture","onFlinge1:X"+e1.getX()+":Y"+e1.getY()+"e2:X"+e2.getX()+":Y"+e2.getY()+"velocityX:"+velocityX+"velocityY:"+velocityY);returnfalse;}}


更多相关文章

  1. Android(安卓)滑动显示下一层界面
  2. android之手势添加&识别
  3. TextView跑马灯效果
  4. android viewpager 学习使用总结
  5. android群英传笔记--第四章--ListView使用技巧(一)
  6. Android: Android中各种onTouch事件
  7. Android: Android中各种onTouch事件
  8. 十六、Android(安卓)滑动效果汇总
  9. Android(安卓)滑动效果汇总

随机推荐

  1. Android(安卓)View相关-事件分发机制详解
  2. 使用surfaceView制作的拍照demo
  3. 关于Android系统的局域网广播的相关东东
  4. Android(安卓)关于dp dip sp px dpi dens
  5. Android(安卓)调用前置摄像头
  6. Android之Http通信——1.初识Http协议
  7. 【Android】Android中用代码复制文件的大
  8. Android(安卓)文件IO操作
  9. Android(安卓)Studio 导入第三方库
  10. Android实现推送消息的解决方案