标签: gestures

Android,通过可点击的小部件进行手势

我的应用程序包含一个填充按钮的区域.我希望以这种方式实现活动,按钮区域上的fling手势会将其切换到另外两个区域之一(使用ViewFlipper).

我在检测手势方面做了两种方法.第一个涉及使用GestureDetector.但是,Button上的触摸动作事件没有引发onTouchEvent活动方法,所以 - 结果 - 我无法将它转发到GestureDetector类.简而言之,失败.

第二种方法 - 使用GestureOverlayView.然而,这一次,我已经达到了第二个极端:不仅检测到手势,而且执行手势的按钮报告了点击.

我希望界面以下列方式工作:如果用户触摸按钮并释放触摸(或仅略微移动手指),则按钮会报告单击并且未检测到任何手势.另一方面,如果用户触摸屏幕并进行更长时间的移动,则应检测手势并且按钮不报告点击事件.

我已经实现了一个小概念验证应用程序.活动XML代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"  xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical">
  <android.gesture.GestureOverlayView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/overlay">
    <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
    <TextView android:id="@+id/display" android:layout_width="match_parent" android:layout_height="wrap_content" />
    <Button android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/button"/>
    </LinearLayout>
  </android.gesture.GestureOverlayView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

活动java代码如下:

package spk.sketchbook;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.gesture.*;
import android.gesture.GestureOverlayView.OnGestureListener;

public class Main extends Activity implements OnGestureListener, OnClickListener
{       
  private void SetupEvents()
  {
    GestureOverlayView ov = (GestureOverlayView)findViewById(R.id.overlay);
    ov.addOnGestureListener(this); …
Run Code Online (Sandbox Code Playgroud)

user-interface android interface gestures clickable

8
推荐指数
1
解决办法
4377
查看次数

获取标签动画与Phibrow App相同

我想创建与Phibrow App相同的动画.有关详细信息,请参阅以下视频: - https://www.dropbox.com/s/wwc69a9ktaa52je/IMG_0155.MOV?dl=0

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

我试图用这个动画制作UIPinchGestureRecognizer,UIRotationGestureRecognizerUIPanGestureRecognizer.但还不能得到这个动画.

func handlePinchGesture(gesture: UIPinchGestureRecognizer) {
    if gesture.state == UIGestureRecognizerState.began || gesture.state == UIGestureRecognizerState.changed{
        //print("UIPinchGestureRecognizer")

        gesture.view?.transform = (gesture.view?.transform)!.scaledBy(x: gesture.scale, y: gesture.scale)
        gesture.scale = 1.0
    }
}


func handleRotationGesture(gesture: UIRotationGestureRecognizer) {
    if gesture.state == UIGestureRecognizerState.began || gesture.state == UIGestureRecognizerState.changed{
        print("UIRotationGestureRecognizer : ", gesture.rotation)
        gesture.view?.transform = (gesture.view?.transform)!.rotated(by: gesture.rotation)
        gesture.rotation = 0
    }
}

func handlePanGesture(gesture: UIPanGestureRecognizer) {
    if gesture.state == UIGestureRecognizerState.began || gesture.state == UIGestureRecognizerState.changed{
        //print("UIPanGestureRecognizer")
        let translation = gesture.translation(in: view) …
Run Code Online (Sandbox Code Playgroud)

animation gestures ios swift

8
推荐指数
1
解决办法
300
查看次数

- [NSResponder swipeWithEvent:]未调用

我正在编写一个针对OS X Lion和Snow Leopard的应用程序.我有一个观点,我想要回应滑动事件.我的理解是,-[NSResponder swipeWithEvent:]如果在我的自定义视图中实现了该方法,则三指滑动将调用.我已经看过这个问题和相应的答案,并尝试了以下Oscar Del Ben代码的修改后的实现:

@implementation TestView

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code here.
    }

    return self;
}

- (void)drawRect:(NSRect)dirtyRect
{
    [[NSColor redColor] set];
    NSRectFillUsingOperation(dirtyRect, NSCompositeSourceOver);
}

- (void)swipeWithEvent:(NSEvent *)event {
    NSLog(@"Swipe event detected!");
}

- (void)beginGestureWithEvent:(NSEvent *)event {
    NSLog(@"Gesture detected!");
}

- (void)endGestureWithEvent:(NSEvent *)event {
    NSLog(@"Gesture end detected!");
}

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"mouseDown event detected!");
}

@end
Run Code Online (Sandbox Code Playgroud)

这编译并运行正常,视图按预期呈现.该mouseDown:事件已正确注册.但是,没有其他事件被触发.既不是begin/endGestureWithEvent:方法,也不是swipeWithEvent: …

cocoa gestures swipe osx-lion

7
推荐指数
1
解决办法
3817
查看次数

IOS在滚动视图之间拖放

所以这是捕获.我有两个滚动视图,一个充满10个奇数子视图,基本上就像扑克牌(自定义类视图).我希望能够将这些视图中的一些拖放到我拥有的空滚动条中.

这两个滚动视图之间有许多不同的视图.所以我想显示视图实际上是从一个视图拖动并放在另一个滚动视图中.我如何实现这一目标.

我知道我必须使用触摸,但如果有人能够举起一个简单的例子,我会很高兴.谢谢.

drag-and-drop gestures ipad ios

7
推荐指数
1
解决办法
2769
查看次数

如何在android中识别三指点击

我想在android屏幕上检测到三个手指点击.我能够检测到最多两个手指.如何检测三个手指呢?我听到一些android能够检测到2个手指的位置.是这样吗?

android gestures

7
推荐指数
1
解决办法
8622
查看次数

Tinder风格用Javascript拖动手势和拖放?

我正在试图弄清楚我可以使用什么库来进行仅使用Javascript的Tinder风格的拖放手势.

  1. 需要创建一个响应拖动手势的HTML元素..
  2. 触摸并按住时,允许元素跟随用户的手指.
  3. 当用户移开他的手指时,元素要么:

    动画回到原来的位置

    如果元素在释放时位于指定的放置区域上,则该元素将生成动画并消失,并且需要某种触发事件包含哪个元素被删除以及哪个放置区域被放入

我已经研究过HammerJS,但似乎并不支持掉落区域.

jQuery的Hover事件似乎不适用于手指.

javascript gestures

7
推荐指数
3
解决办法
9055
查看次数

GestureDetector和GestureDetectorCompat

GestureDetector Class和GestureDetectorCompat类有什么区别?两者都做同样的事情(处理手势),但我应该使用哪一个?

java api android gestures gesturedetector

7
推荐指数
1
解决办法
2734
查看次数

从.xef文件离线检测视觉手势

我正在尝试将提供kinect sdk工具的DiscreteGestureBasics项目与RecordAndPlaybackBasics相结合.RecordAndPlaybackBasics代码有两个主要方法播放.xef文件并记录.xef.我想阅读.xef文件并使用DiscreteGestureBasics中的代码评估手势.在DiscreteGestureBasics我输入功能进行播放.xef使用从代码文件RecordAndPlaybackBasics.播放文件的代码如下:

 private void PlaybackClip(string filePath)
    {
        using (KStudioClient client = KStudio.CreateClient())
        {
            client.ConnectToService();         
            using (KStudioPlayback playback = client.CreatePlayback(filePath))
            {
                playback.LoopCount = this.loopCount;
                playback.Start();
                while (playback.State == KStudioPlaybackState.Playing)
                {

                    Thread.Sleep(100);
                }
            }
            client.DisconnectFromService();
        }

        // Update the UI after the background playback task has completed
        this.isPlaying = false;
        this.Dispatcher.BeginInvoke(new NoArgDelegate(UpdateState));
    }
Run Code Online (Sandbox Code Playgroud)

我试图在playbackClip函数中添加GestureDetector.cs代码(来自DiscreteGestureBasics的脚本).我添加了一个带播放功能的按钮,因此当我按下按钮时,开始播放.xef文件.xef正常可视化,但探测器的置信度得分始终为零.在以下来自GestureDetector.cs scirpt的代码中,discreteResults始终为null.知道这里有什么不对吗?

VisualGestureBuilderFrameReference frameReference = e.FrameReference;
using (VisualGestureBuilderFrame frame =frameReference.AcquireFrame())
{// frame return always null
 if (frame != null)
 {
    IReadOnlyDictionary<Gesture, ContinuousGestureResult> discreteResults …
Run Code Online (Sandbox Code Playgroud)

c# gestures kinect

7
推荐指数
1
解决办法
705
查看次数

Swift 3.0中的CGAffineTransformScale

Swift 3.0没有调用方法CGAffineTransformScale.

func didPinchGesture(pinchRecognizer : UIPinchGestureRecognizer) {
  if let view = pinchRecognizer.view {
    view.transform = CGAffineTransformScale(view.transform,
                            recognizer.scale, recognizer.scale)
    pinchRecognizer.scale = 1
  }
}
Run Code Online (Sandbox Code Playgroud)

scaleBy不自动完成但添加到CGAffineTransform scaleBythrows错误,因为scale不再是CGAffineTransform的属性: CGAffineTransform.scaledBy(view.transform, pinchRecognizer.scale, pinchRecognizer.scale).

使用Swift 3.0配置捏手势识别器的最佳方法是什么?

gestures cgaffinetransform ios swift

7
推荐指数
1
解决办法
5333
查看次数

ReactNative PanResponder限制X位置

我正在建立一个音乐播放器,我专注于进度条.我能够对滑动手势做出反应,但我无法限制手势的移动距离.

这就是我到目前为止所做的.我把所有东西都减少到了minumal:

constructor(props) {
    super(props);

    this.state = {
      pan: new Animated.ValueXY()
    };
}

componentWillMount() {
    this._panResponder = PanResponder.create({
        onMoveShouldSetResponderCapture: () => true,
        onMoveShouldSetPanResponderCapture: () => true,
        onPanResponderGrant: (e, gestureState) => {


            // Set the initial value to the current state
            let x = (this.state.pan.x._value < 0) ? 0 : this.state.pan.x._value;


            this.state.pan.setOffset({ x, y: 0 });
            this.state.pan.setValue({ x: 0, y: 0 });


        },
        onPanResponderMove: Animated.event([
            null, { dx: this.state.pan.x, dy: 0 },
        ]),
        onPanResponderRelease: (e, { vx, vy }) => { …
Run Code Online (Sandbox Code Playgroud)

android gestures react-native

7
推荐指数
2
解决办法
2932
查看次数