标签: gesture-recognition

onStartShouldSetPanResponder vs onMoveShouldSetPanResponder in React Native

I'm working with the PanResponder in React Native, and am considering the scenario in which I click an Animated.View and drag it. I have the following code:

this.panResponder = PanResponder.create({
  onStartShouldSetPanResponder: () => true,
  onMoveShouldSetPanResponder: () => true,
  onPanResponderGrant: () => {
    this.animatedValue.setOffset({
      x: this._value.x,
      y: this._value.y,
    })
    this.animatedValue.setValue({ x: 0, y: 0})
  },
  onPanResponderMove: Animated.event([
    null,
    {
      dx: this.animatedValue.x,
      dy: this.animatedValue.y
    }
  ])
})
Run Code Online (Sandbox Code Playgroud)

My questions are:

1) If I click the Animated.View that the PanResponder is attached to, …

javascript gesture-recognition gesture react-native

5
推荐指数
1
解决办法
2283
查看次数

Android 10 手势导航禁用

TLDR:我需要一种以编程方式禁用 Android 10 手势导航的方法,以便他们在从侧面滑动时不会意外返回

背景故事:Android 10 引入了手势导航,而不是底部的按钮。因此,现在在启用了该功能的 Android 10 设备上,他们可以从屏幕任意一侧滑动以返回,从底部滑动以导航至主页或在应用程序之间导航。然而,我正在研究 AR 中的实现,并希望将屏幕锁定为纵向,但允许用户横向显示。

如果用户将手机转为横向,但活动锁定为纵向,则返回手势导航现在是从顶部滑动,这是在全屏应用程序(就是这个)中访问状态栏的常见方式,因此用户如果他们习惯了 Android 导航,他们会不经意地返回并留下体验。

有谁知道如何a)以编程方式禁用Android 10的手势导航(但用户如何返回/回家?)或b)知道如何仅更改手势方向而不需要您的活动支持横向?

android gesture-recognition gesture android-orientation onbackpressed

5
推荐指数
1
解决办法
8534
查看次数

Delphi中手势识别的性能影响?

据报道,Delphi 2010主要通过Windows 7手势API支持用户交互(鼠标或触摸界面)的手势.

支持手势本身是否会受到重大影响?换句话说,由于对手势的检测或响应,大多数与手势相关的处理是什么?通过"回应",我的意思是与惯性有关的动画等.

只是想知道如果添加手势支持,已经是图形密集型的应用程序是否会受到很大的性能影响.希望我有机会很快给RAD2010一个旋转并自己回答这个问题.

delphi overhead gesture-recognition delphi-2010

4
推荐指数
1
解决办法
986
查看次数

如何区分投掷和触摸?

我在ViewFlipper中有一个ListView,当用户在屏幕上滑动时我正在翻转它.单击ListView将打开浏览器.有时当我滑动时,它会在ListView上被检测为触摸并打开浏览器.这可能很烦人.我怎样才能防止这种情况发生?

class MyGestureDetector extends SimpleOnGestureListener {
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            try {
                if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                    return false;
                // right to left swipe
                if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    viewFlipper.setInAnimation(slideLeftIn);
                    viewFlipper.setOutAnimation(slideLeftOut);
                    viewFlipper.showNext();
                } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    viewFlipper.setInAnimation(slideRightIn);
                    viewFlipper.setOutAnimation(slideRightOut);
                    viewFlipper.showPrevious();
                }

                if (viewFlipper.getDisplayedChild() == 0) {
                    // TODO: light up left
                    flipperPosition = 0;
                } else if …
Run Code Online (Sandbox Code Playgroud)

java android listview gesture-recognition viewflipper

4
推荐指数
1
解决办法
6808
查看次数

使用UITapGestureRecognizer

iPhone开发新手 我有一个视图,其中包含一个包含UIImageView的UIScrollView.我在图像视图上添加了一个(双)轻击手势识别器,使警报框打开.出于某种原因,我确信我只是迟钝,它开了3次.

这是我的代码:

- (void)viewDidLoad {

    scrollView.delegate = self;

    UIImage* image = imageView.image;
    imageView.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
    scrollView.contentSize = image.size;

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    NSLog(@"LOADED");

    [super viewDidLoad];
}

-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
    CGPoint tapPoint = [sender locationInView:imageView];
    int tapX = (int) tapPoint.x;
    int tapY = (int) tapPoint.y;
    NSLog(@"TAPPED X:%d Y:%d", tapX, tapY);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"How are you?" delegate:nil cancelButtonTitle:@"I'm awesome." otherButtonTitles:nil];
    [alert show]; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c gesture-recognition uitapgesturerecognizer

4
推荐指数
1
解决办法
2万
查看次数

UITableView 在不应该的情况下将触摸事件传递给超级视图

GIKAnimatedCallout示例代码中,双击手势、两指点击手势、缩放手势和捏合手势都从 UITableView 传递到其下面的 MKMapView。我想阻止这一切发生。UITableView 内的触摸事件不应传递到 MKMapView。

我尝试为点击添加 UIGestureRecognizer,并将其设为空方法,但这些触摸事件仍会发送到 MKMapView 以及 UITableView。

通过调试器查看 UITableView 的超级视图层次结构,我发现 UITableView 是 MKMapView 的后代。

我真的不知道如何解决这个问题。任何指示表示赞赏。

cocoa-touch gesture-recognition mapkit ios

4
推荐指数
1
解决办法
2738
查看次数

在android中替换手势库模板

是否可以从正在运行的应用程序中替换模板库的手势模板?我正在建立一个手写识别系统,其中手势库文件中有字母模板.所以基本上在代码中加载库后我比较用户输入手势,如:

public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList<Prediction> predictions = gesturelib.recognize(gesture);

   if (predictions.size() > 1) {
    for(Prediction prediction: predictions){
       //i compare prediction name here and if matches print it in an edittext
    }
Run Code Online (Sandbox Code Playgroud)

这应该工作得很好,直到用户给出与我在构建库模板期间所做的相同的模式.但是我想让用户在预测不匹配时灵活地用他的手写模式替换模板项.

因为下面2个手写的手势样本在模式方面有所不同,而不是作为一个字母.假设,我的系统支持第一个图像模式,我想当用户给出第二个图像模式时系统会要求用户确认将其替换为A的库模式然后在确认之后将其替换.所以下次系统将更好地识别用户模式.

任何帮助将不胜感激.

在此输入图像描述 在此输入图像描述

android gesture-recognition gestures template-matching

4
推荐指数
1
解决办法
1033
查看次数

禁用 Android 双击 Xamarin 表单标签

嘿,我正在使用 Xamarin Forms,我正在处理 android 双击问题。

我的问题是我使用标签作为按钮 - 当我快速单击它时,应用程序将崩溃。我想通过在单击后禁用点击来防止这种情况发生。

我的标签在 XAML 中定义如下:

<Label x:Name="LabelName" Text="LabelText"/>
Run Code Online (Sandbox Code Playgroud)

我的代码隐藏是这样的:

LabelName.GestureRecognizers.Add((new TapGestureRecognizer
{
  Command = new Command(async o =>
  {
    await Navigation.PopToRootAsync();
  })
}));
Run Code Online (Sandbox Code Playgroud)

c# xaml android gesture-recognition xamarin.forms

4
推荐指数
1
解决办法
5872
查看次数

Python cv2中的皮肤检测和背景扣除

在过去的几天里,我一直在使用OpenCV Python开展手势识别程序.理想情况下,我希望有一个像本视频中所示的系统.我已经阅读了视频描述中描述的算法,我对它的全部了解.但是,我在复制背景减法和肤色检测方面的成功时遇到了麻烦.我的所有尝试都结果非常嘈杂和/或非常依赖于照明,这两者都使我的代码暂时无用.

我尝试过以下方法:

  • BackgroundSubtractorMOG和BackgroundSubtractorMOG2应用于颜色框架
  • 将图像分割成Y Cr Cb,在重新组合成单​​个图像之前将MOG或MOG2应用于每个
  • 过滤范围以删除非肤色的颜色(应用于彩色图像)

到目前为止,我还没有成功.我已经能够挑选出一些轮廓,但这些都是嘈杂和不稳定的(根据框架来来去去).他们是我应该使用的另一种方法吗?

python opencv gesture-recognition

4
推荐指数
1
解决办法
3509
查看次数

SwiftUI ScrollView 手势识别器

如何检测 ScrollView 何时被拖动?

在我的 ScrollView 中,我有一个@Binding scrollPositionOffset变量,我.onChange(of:)可以使用该变量进行观察,然后使用ScrollViewReader.scrollTo(). scrollPositionOffset这很好用,但当我直接滚动 ScrollView 时,我还需要更新。我正在努力做到这一点,因为这会触发.onChange(of:)关闭并进入循环。

我的解决方案是ScrollViewReader.scrollTo()仅当我将localScrolling变量设置为 false 时才进行有条件调用。我尝试使用DragGesture.onChanged和进行设置.onEnded,但这与导致滚动的拖动手势不同,因此.onEnded永远不会触发。

我认为我需要的是类似于 UIScrollView 的 ScrollView 的 @GestureRecognizerisDraggingisTracking(我知道我可以使用 UIScrollView,但我不知道如何使用,这似乎可能需要更多工作!!我会接受答案这也向我展示了如何将其放入 SwiftUIView 中)

上下文(如果有人对我的实际情况有更清晰的解决方案):

我有一个 ScrollView,我正在以编程方式滚动它,以创建类似于 Xcode 中的 Minimap 视图的效果(即,我有一个与 ScrollView 相邻的缩小视图,拖动小地图会导致 ScrollView 滚动)。

当我使用小地图时,这非常有用,但我很难实现相反的情况:移动 ScrollView 的位置来更新小地图视图。

代码


@Binding var scrollPositionOffset: CGFloat
let zoomMultiplier:CGFloat = 1.5

 var body: some View{
        
        ScrollViewReader { scrollViewProxy in
            GeometryReader{ geometry in …
Run Code Online (Sandbox Code Playgroud)

gesture-recognition ios swift swiftui swiftui-scrollview

4
推荐指数
1
解决办法
2200
查看次数