Android 手势不被识别

标签 android gesture gesture-recognition gestures

我正在尝试使用手势生成器在我的应用程序上接收向上/向下和向左/向右手势。我按照此处的指南 (http://www.vogella.com/articles/AndroidGestures/article.html) 进行操作,它似乎有效,但对正确的手势 react 不完全。它在叠加层上以亮黄色显示左侧和右侧(找到手势),但是当 Toast 创建弹出窗口以显示已识别手势的名称时,它显示右/上/下都被识别或左/上/下是。此外,它不会将实际的上下滑动识别为有效手势(在 Overlay 上淡出黄色)。

我曾多次尝试使用 Gesture Builder 重新构建 Gesture 库,以防那里出现错误,但似乎没有。

所使用的代码与上面的链接相同。

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    gTap  = new GestureDetector(this,(android.view.GestureDetector.OnGestureListener) this);

    //Remove title bar
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);


    //Define textView
    textView1 = (TextView) findViewById(R.id.textView1);
    textView2 = (TextView) findViewById(R.id.textView2);
    textView3 = (TextView) findViewById(R.id.textView3);
    textView4 = (TextView) findViewById(R.id.textView4);

    GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
    View inflate = getLayoutInflater().inflate(R.layout.main, null);
    gestureOverlayView.addView(inflate);
    gestureOverlayView.addOnGesturePerformedListener(this);

    gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
    if (!gestureLib.load()) {
      finish();
    }
    setContentView(gestureOverlayView);


    //Load font file
    Typeface type = Typeface.createFromAsset(getAssets(),"fonts/optima.ttf"); 

    //Set various textViews to font
    textView1.setTypeface(type);
    textView2.setTypeface(type);
    textView3.setTypeface(type);
    textView4.setTypeface(type);

    prevPass = "Memorable";

}


public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
  ArrayList<Prediction> predictions = gestureLib.recognize(gesture);
  for (Prediction prediction : predictions) {
    if (prediction.score > 1.0) {
      Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT)
          .show();
    }
  }
}

最佳答案

如前所述here , 将其添加到您的代码中。

GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
    gestures.setGestureStrokeAngleThreshold( 90.0f);

Here是 Gesture Builder 应用程序的完整代码。你也可以试试。

关于Android 手势不被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14252333/

相关文章:

android - Android 中的 IME 键盘类键码与 KeyEvent 类键码

android - 从 NFC 标签打开时,Firebase 动态 URL 表现异常

android - 如何检测android中的顺时针手势

android - 如何像 "Home", "News & Weather app"那样用手指移动滑动标签内容(TabActivity)?

ios - 如果用户在负方向平移 x 和 y,UIPanGestureRecognizer 不会切换到状态 "End"或 "Cancel"

iphone - 如何实现单指旋转手势识别器?

android - 键盘上的抽屉布局

android - 如何在谷歌地图版本 2 中通过 AsyncTask 或 Handler 始终显示标记

Android onfling 概率

linux - 基于加速度计的手势识别