2013-01-10 17 views
2

제스처 빌더를 사용하여 내 앱에서 위/아래 및 왼쪽/오른쪽 제스처를 수신하려고합니다. 나는 여기 가이드 (http://www.vogella.com/articles/AndroidGestures/article.html)를 따라 갔지만 제대로 작동하는 것 같지만 제스처가 정확히 반응하지는 않습니다. 밝은 노란색 (제스처가 있음)의 오버레이에서 왼쪽과 오른쪽을 표시하고 있지만 Toast이 인식하면 오른쪽/위/아래가 모두 인식되거나 왼쪽/위/아래를 나타내는 제스처의 이름을 보여주는 팝업을 만듭니다. 또한 실제 스 와이프를 올바른 동작으로 인식하지 못합니다 (오버레이에서 황색으로 변함).Android 제스처를 인식하지 못함

제스처 빌더를 사용하여 제스처 라이브러리를 여러 번 다시 빌드 해 보았습니다. 오류가 발생했을 경우를 대비해 몇 번이나 시도해 보았습니다.

사용되는 코드는 위의 링크와 같습니다.

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

답변

1

상기 한대로 here을 코드에 추가하십시오.

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

Here은 Gesture Builder 응용 프로그램에 대한 완전한 코드입니다. 너도 그걸 시도 할 수있어.

관련 문제