如何识别android中的滑动?

时间:2014-11-26 07:10:02

标签: java android swipe

我是Android编程新手。 我想处理滑动事件。请帮助我使用适当的类和方法作为例子。

2 个答案:

答案 0 :(得分:0)

Android支持手势。要使用此支持,您的应用程序必须使用视图" GestureOverlayView"。在此视图中,您可以放置​​其他视图。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="@string/hello"/>
</LinearLayout> 


import java.util.ArrayList;

import android.app.Activity;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.gesture.Prediction;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class GestureTest extends Activity implements OnGesturePerformedListener {
  private GestureLibrary gestureLib;


/** Called when the activity is first created. */

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    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);
  }

  @Override
  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();
      }
    }
  }
} 

答案 1 :(得分:0)

由于您不熟悉Android编程,我建议您完成Swipe Developer Standards一次。

之后您可能想要查看此解决方案:Android Basic Gesture Detection。此链接还包含有关如何处理滑动事件的代码。通常,术语术语如fling和velocity用于表示滑动事件。

Swipe Event背后的一般逻辑:

当用户在屏幕上从左向右或从右向左滑动时,会发生以下情况: 用户首先触摸屏幕(假设第一个x坐标是x1)保持,交换然后离开屏幕(假设第二个x坐标是x2)

所以,现在如果(x2> x1),则意味着已经完成了从左到右的滑动。 如果(x2

同样,可以在Up to Down或Down to Up的情况下进行跟踪。