3

我现在有点困惑:

我使用 Gesturebuilder 创建了 4 个手势 1 手势是向上滑动 2 手势是向下滑动 3 手势是向左滑动 4 手势是向右滑动

但是当我尝试在正在运行的应用程序上做一个手势时,只能识别左右,而且它的上下接缝也像左右一样,因为该方法给了我作为 toat 的 getsures

向左滑动的吐司显示:up,left

我还在我的活动和 OntouchListener 中使用自定义视图,但我无法让它工作

活动 :

public class RunActivity extends Activity implements OnTouchListener, OnGesturePerformedListener {

    static int width;
    static int height;

    static boolean reset=false;


    draw d;


    //jump
    private GestureLibrary gestureLib;


private static Context mContext;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        d = new draw(this);
        d.setOnTouchListener(this);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        mContext = this;


        //get screen size
        WindowManager wm = (WindowManager) this.getContext().getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();


        width = display.getWidth();  // deprecated
        height = display.getHeight();  // deprecated


        //Jump
        GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
        View inflate = d;
        gestureOverlayView.addView(inflate);
        gestureOverlayView.addOnGesturePerformedListener(this);
        gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
        if (!gestureLib.load()) {
            finish();
        }
        setContentView(gestureOverlayView);

        //setContentView(d);
    }
    public static Context getContext(){
        return mContext;
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Log.d("touch","touched");

        if (draw.end == true)
        {
        reset=true;
        }
        return false;
    }
    @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();
            }
        }
    }

}
4

1 回答 1

0

删除您的onTouch()方法,或者至少链接到超类而不是简单地返回false,看看是否有帮助。

于 2012-04-11T13:03:48.880 回答