手势

作者: 飞鱼和大海 | 来源:发表于2016-07-31 18:54 被阅读0次
  • 使用GestureDetector进行手势识别
手势交互原理

eg:当滑动图片时弹出从那边滑动
1.设置图片
在ImageView中加载图片为
android:src="@drawable/tupian"
2.获得图像id并设置监听

ImageView image=(ImageView)findViewById(R.id.imageView);
image.setOnTouchListener(new OnTouchListener{
GestureDetector myGesture=new GestureDetector(new myGesture);
  public boolean OnTouch(View view,MotionEvent event){
         myGestureDetector.onTouchEvent(event);
         return true;//设置成true表示触摸事件发生
}  

}
)

3.获得OnGestureListener类以便被实例化,在其中设置滑动方式

class myGesture extends OnGestureListener{
   public boolean onFling(MotionEvent e1,MotionEvent e2,float velocityX,float velocityY){
      if(e1.getX()-e2.getX()>50){
            Toast.makeText(MainActivity.this, "从右向左滑动", Toast.LENGTH_SHORT).show();
}else if(e2.getX()-e1.getX()>50){
            Toast.makeText(MainActivity.this, "从左向右滑动", Toast.LENGTH_SHORT).show();
}
  return super.onFling(e1,e2,velocityX,velocityY);
}
}
  • 使用GestureOverlayView进行手势识别
    1.导出手势:
    在Gesture Builder中建立手势在File Explore中导出file explore-shell-emulate-0-gesture进行导出
gesture手势

2.把手势gesture加入res-raw中

手势存储位置

3.找到刚才的手势文件并加载

GestureOverlayView gesture=(GestureOverlayView)findViewById(R.id.gestureOverlayView);
final GestureLibrary library=GestureLibraries.findRawResource(MainActivity.this,R.raw.gestures);

library.load();
4.匹配相应手势

//OnGesturePerformedListener手势执行监听器
gesture.addOnGesturePerformedListener(new OnGesturePerformedListener(){
   public void onGesturePerformed(GestureOverlayView gestureOver,Gesture gesture){
       ArrayList<Prediction> myGesture=library.recognize(gesture);
//Prediction表示手势的相似度
        Prediction prediction=myGesture.get(0);
        if(prediction.score>5){
             if(prediction.name.equals("next")){
     Toast.makeText(MainActivity.this,"播放下一首",Toast.LENGTH_SHORT);
}if(prediction.name.equals("previous")){
     Toast.makeText(MainActivity.this,"播放上一首",Toast.LENGTH_SHORT);
}if(prediction.name.equals("quit")){
     Toast.makeText(MainActivity.this,"退出",Toast.LENGTH_SHORT);
}

}else{
     Toast.makeText(MainActivity.this,"没有相关手势",Toast.LENGTH_SHORT);
}
}
});

4.设置手势的类型
在android.gesture.GestureOverlayView标签中设置
设置笔画颜色android:gestureColor="#ff0000"
设置笔画类型android:gestureStrokeType="multiple"
设置笔画宽度android:gestureStrokeWidth="2"
用户画完手势效果淡出时间android:fadeDuration
当手势被识别后,是否拦截该手势android:eventsInterceptionEnable
手势是否自动淡出android:fadeEnable

相关文章

  • 手势

    点击手势 捏合手势 旋转手势 轻扫手势 拖拽手势 边缘平移手势 长按手势

  • iOS-手势详细参数说明

    敲击手势 长按手势 滑动手势 拖动手势 旋转手势 捏合手势 两种手势作用在同一个视图

  • 【iOS学习】——手势识别

    iOS 手势 手势需要开启用户交互 点击手势 单击手势 双击手势 添加 numberOfTapsRequired...

  • Swift - UIGestureRecognizer 各种手势

    1、点击手势2、拖动手势3、长按手势4、滑动手势5、捏合手势6、旋转手势 完整代码

  • iOS七种手势详解

    1、轻拍手势 2、捏合手势 3、旋转手势 4、平移手势 5、边缘轻扫手势 6、长按手势 7、轻扫手势 给image...

  • iOS手势总结

    1.轻拍手势 2.长按手势 3.轻扫手势 4.平移手势 5.捏合手势 6.旋转手势 7.边缘手势

  • iOS 手势

    修改时间: 2016-12-19修改次数: 0 手势传递 点击手势 捏合手势 轻扫手势 拖动手势 长按手势

  • iOS手势操作

    iOS手势有六种 手势类型: 手势状态: 创建View添加手势 1.轻点手势( UITapGestureRecog...

  • Vue手势

    点击手势 滑动手势 手势的方法

  • UI梳理——手势

    手势分类: 手势的创建: 方法的实现: 轻扫手势:UISwipeGestureRecognizer 长按手势: 以...

网友评论

      本文标题:手势

      本文链接:https://www.haomeiwen.com/subject/cdctsttx.html