标签: gesture-recognition

检测用户的手势,例如滑动

我正在使用phonegap构建Android应用程序.

我想检测用户的手势,例如用户的滑动.我可以通过javascript调用一个事件吗?

谢谢!

javascript android gesture-recognition cordova

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

使用OpenCV凸包和凸度缺陷函数进行手指跟踪/计数

我一直在使用OpenCV和ConvexHull和ConvexityDefects方法处理基本的手/手指跟踪代码.

基本上我能够创造出手的轮廓.我现在需要能够计算手指的数量.我知道Convex Hull的起点和终点是指尖,但我不确定如何计算它们以及如何通过在它们上面绘制圆圈来突出它们.

我希望我的代码能够执行这样的操作.

到目前为止,这是我的代码的示例部分:

cvFindContours( hsv_mask, storage, &contours, sizeof(CvContour), CV_RETR_LIST,         CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) );

CvSeq* contours2 = NULL;

CvRect rect = cvBoundingRect( contours2, 0 );

cvRectangle( bitImage, cvPoint(rect.x, rect.y + rect.height), cvPoint(rect.x + rect.width, rect.y), CV_RGB(200, 0, 200), 1, 8, 0 );

CvSeq* hull = cvConvexHull2( contours2, 0, CV_CLOCKWISE, 0 );

CvSeq* defect = cvConvexityDefects( contours2, hull, dftStorage );

CvBox2D box = cvMinAreaRect2( contours2, minStorage );

cvDrawContours( bg, contours2,  CV_RGB( 0, 200, 0), CV_RGB( 0, 100, 0), 1, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv tracking gesture-recognition computer-vision

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

如何在iPhone上进行捏合手势?

如何在iPhone上实现捏合手势?我熟悉在iPhone上使用触摸事件,但我非常懒,并且不想重新发明像PINCH手势那样普遍的东西...源代码或其链接会有所帮助.

iphone gesture-recognition multi-touch pinch

11
推荐指数
3
解决办法
3万
查看次数

如何在kinect中实现波形手势?

我想使用手势,因此kinect可以选择以手势为主要玩家的人.在此之后,他可以控制PC.选择该人并给予他们控制权已完成.现在我必须实现一个手势,但我不知道如何开始.

谁能帮我?

c# gesture-recognition gesture kinect

11
推荐指数
1
解决办法
8582
查看次数

Android - 向左滑动|向右滑动.手势检测

我试图将这个"手势"功能添加到我的第一个程序中,几乎我所做的每一次搜索都来到了这个帖子:

网格布局上的手势检测

我能够让它工作..但在我的情况下,我不确定它是否100%正确.

在我的布局中,我有3个水平linearLayouts,每个有5个按钮..所以它是3列5个按钮..根据我必须的线程:

"将您的手势监听器附加到您添加到主布局的所有视图中;"

这意味着所有15个按钮:

"button.setOnTouchListener(gestureListener);"

难道我不能说带按钮的LinearLayouts是那些寻找滑动手势的人吗?或者因为它们"隐藏"在按钮的背面,这是不可能完成的?

因为我有另一个布局,我想用它实现,它有更多的按钮..

所以...只是在我的屏幕上寻找一种更简单的检测方法来向右滑动 离开..如果确实存在..

先感谢您

android listener gesture-recognition

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

在Android应用中使用DrawerLayout时手势不起作用

我有一个Android应用程序,只有一个Activity.此活动使用此布局:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

然后,在我的源代码中,我在构造函数中定义了两个手势检测器:

mDetector = new GestureDetectorCompat(this, new CustomGestureListener());
mScaleDetector = new ScaleGestureDetector(this, new CustomScaleGestureListener());
Run Code Online (Sandbox Code Playgroud)

我用这种方式重写onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getPointerCount() > 1) {
        this.mScaleDetector.onTouchEvent(event);
    } else {
        this.mDetector.onTouchEvent(event);
    }
    return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是没有检测到手势(虽然我可以用滑动手势打开抽屉).如果我用例如线性布局替换drawerlayout,则不会发生此问题,因此原因是导航抽屉.我究竟做错了什么?

java android gesture-recognition drawerlayout

10
推荐指数
1
解决办法
2379
查看次数

如何将两个UIGestureRecognizer链接在一起?

我想要做的是检测滑动手势,然后是平移手势,作为相同触摸序列的一部分.因此,用户首先滑动对象以执行动作,然后,在将他们的手指保持在屏幕上的同时,向上/向下移动以将动作传播到周围的对象.

我有一个轻扫手势识别器和一个平移手势识别器.

在我看来,使它们按照我想要的方式运行的理想方法是这样做:

[myPanGestureRecognizer requireGestureRecognizerToSucceed:mySwipeGestureRecognizer];
Run Code Online (Sandbox Code Playgroud)

但是,虽然我确信我不仅仅想象requireGestureRecognizerToSucceed:,但似乎我有.

有没有办法实现我想要的东西而不用子类化UIGestureRecognizer?

iphone cocoa-touch gesture-recognition uigesturerecognizer ios

9
推荐指数
1
解决办法
2789
查看次数

触摸应用程序的滑动行为

我正在为ActionScript编写一个管理器来检测SWIPE手势.是的,有API可以使用本机(OS)手势,但我的计划是:

  1. 因此它甚至可以用于单片机屏幕(换句话说通常的平台.单一屏幕屏幕或只是常规鼠标输入).
  2. 有更多的低级API.基本上我正在处理常规的MOUSE_DOWN @ target,MOUSE_MOVE @ stage和stage.MOUSE_UP@stage.
    不是火箭科学.但为了使其顺利运行(在用户体验方面),你必须考虑细节.

那么有人会记住一些小细节,提示和技巧吗?来自其他移动平台(iOS/Android/...)的任何经验?什么是低级别的SWIPE手势?

我的担忧:

  1. 是否应该在MOUSE_UP @ stage或手指/鼠标释放之前触发此事件(如TransformGestureEvent)?(如果有人有antroid-device,你能查看TourDeFlex app在那里发生的情况吗?)
  2. 主要问题:如何过滤掉?我倾向于公式"(在最后一个T ms期间沿着我们的轴传递的距离大于N &&沿正交轴传递的距离不大于M)".
    怀疑,是否有一个特定的时间窗口(从手指/鼠标开始)来做手势..这样一切都将在这个时间窗口(计时器)关闭后中止.

期待您的笔记和评论,谢谢.

UPD:一些很好发现的想法:http: //smartandroidians.blogspot.com/2010/04/swipe-action-and-viewflipper-in-android.html使用某种速度

gesture-recognition actionscript-3 gesture swipe

9
推荐指数
1
解决办法
2025
查看次数

如何使用Kinect跟踪一个人(trackingID)

我想跟踪第一个人,并使用此人的右手导航我制作的应用程序.

我可以接管光标,现在我只想跟踪一个人.所以基本上当一个人在节目中导航,并且有人走在他身后或正在寻找这个人时,如果他们移动,那么kinect就不应该认出其他人.

我怎么能实现这一点,我知道它与trackingId什么有关呢?:■

        foreach (SkeletonData s in allSkeletons.Skeletons)
        {

                if (s.TrackingState == SkeletonTrackingState.Tracked)
                {
                    if (s.TrackingID == 0)
                    {

                        foreach (Joint joint in s.Joints)
                        {
                        }
                    }
                }
        }
Run Code Online (Sandbox Code Playgroud)

c# wpf tracking gesture-recognition kinect

9
推荐指数
1
解决办法
6756
查看次数

使用GestureLibrary和ScrollView

正如我在标题上提到的,app也有一个ScrollView和一个GestureDetector.在ScrollView的触摸事件之外,GestureDetector处理从左到右和从右到左的滑动操作.他们都运作良好.

现在我想添加一个GestureLibrary-I表示raw-到Activity.我看了不同的来源,并以某种方式添加得当.简单地说,布局看起来像这样:

<android.gesture.GestureOverlayView
    android:id="@+id/gOverlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ScrollView 
        android:id="@+id/content_scroll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollbars="none">

            </ScrollView>
            <!-- Other views -->
</android.gesture.GestureOverlayView>   
Run Code Online (Sandbox Code Playgroud)

这是我想要的画(黄线),但它没有触发任何方法.这是我实施的方式OnGesturePerformedListener:

    /*
     * Gestures
     */
    gLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
    if (!gLibrary.load()) { finish(); }
    GestureOverlayView gestureOverlayView = (GestureOverlayView) findViewById(R.id.gOverlay);
    gestureOverlayView.addOnGesturePerformedListener(gestureListener);  
Run Code Online (Sandbox Code Playgroud)

这是gestureListener:

private OnGesturePerformedListener gestureListener = new OnGesturePerformedListener() {
    public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
        ArrayList<Prediction> predictions = gLibrary.recognize(gesture);            
        if (predictions.size() > 1) {
            for(Prediction prediction: predictions){
                Log.d("Test", "Looking for gestures");
            } …
Run Code Online (Sandbox Code Playgroud)

android gesture-recognition gesture

9
推荐指数
1
解决办法
1646
查看次数