我正在使用phonegap构建Android应用程序.
我想检测用户的手势,例如用户的滑动.我可以通过javascript调用一个事件吗?
谢谢!
我一直在使用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) 如何在iPhone上实现捏合手势?我熟悉在iPhone上使用触摸事件,但我非常懒,并且不想重新发明像PINCH手势那样普遍的东西...源代码或其链接会有所帮助.
我想使用手势,因此kinect可以选择以手势为主要玩家的人.在此之后,他可以控制PC.选择该人并给予他们控制权已完成.现在我必须实现一个手势,但我不知道如何开始.
谁能帮我?
我试图将这个"手势"功能添加到我的第一个程序中,几乎我所做的每一次搜索都来到了这个帖子:
我能够让它工作..但在我的情况下,我不确定它是否100%正确.
在我的布局中,我有3个水平linearLayouts,每个有5个按钮..所以它是3列5个按钮..根据我必须的线程:
"将您的手势监听器附加到您添加到主布局的所有视图中;"
这意味着所有15个按钮:
"button.setOnTouchListener(gestureListener);"
难道我不能说带按钮的LinearLayouts是那些寻找滑动手势的人吗?或者因为它们"隐藏"在按钮的背面,这是不可能完成的?
因为我有另一个布局,我想用它实现,它有更多的按钮..
所以...只是在我的屏幕上寻找一种更简单的检测方法来向右滑动 离开..如果确实存在..
先感谢您
我有一个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,则不会发生此问题,因此原因是导航抽屉.我究竟做错了什么?
我想要做的是检测滑动手势,然后是平移手势,作为相同触摸序列的一部分.因此,用户首先滑动对象以执行动作,然后,在将他们的手指保持在屏幕上的同时,向上/向下移动以将动作传播到周围的对象.
我有一个轻扫手势识别器和一个平移手势识别器.
在我看来,使它们按照我想要的方式运行的理想方法是这样做:
[myPanGestureRecognizer requireGestureRecognizerToSucceed:mySwipeGestureRecognizer];
Run Code Online (Sandbox Code Playgroud)
但是,虽然我确信我不仅仅想象requireGestureRecognizerToSucceed:,但似乎我有.
有没有办法实现我想要的东西而不用子类化UIGestureRecognizer?
iphone cocoa-touch gesture-recognition uigesturerecognizer ios
我正在为ActionScript编写一个管理器来检测SWIPE手势.是的,有API可以使用本机(OS)手势,但我的计划是:
那么有人会记住一些小细节,提示和技巧吗?来自其他移动平台(iOS/Android/...)的任何经验?什么是低级别的SWIPE手势?
我的担忧:
期待您的笔记和评论,谢谢.
UPD:一些很好发现的想法:http: //smartandroidians.blogspot.com/2010/04/swipe-action-and-viewflipper-in-android.html使用某种速度
我想跟踪第一个人,并使用此人的右手导航我制作的应用程序.
我可以接管光标,现在我只想跟踪一个人.所以基本上当一个人在节目中导航,并且有人走在他身后或正在寻找这个人时,如果他们移动,那么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) 正如我在标题上提到的,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 ×4
gesture ×3
c# ×2
iphone ×2
kinect ×2
tracking ×2
c++ ×1
cocoa-touch ×1
cordova ×1
drawerlayout ×1
ios ×1
java ×1
javascript ×1
listener ×1
multi-touch ×1
opencv ×1
pinch ×1
swipe ×1
wpf ×1