on touch even my code give always right side position
<p>I'm developing an Android application and I would like to know if is possible to detect the direction of movement with one axis fixed. For example, I want put my phone on the table and detect the direction when I move it (left, right, up and down). The distance is not necessary, I just want to know the accurate direction.</p>

<p>Thanks!</p>

<p>my code is:</p>

<pre><code>arg1.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View arg0, MotionEvent event) {

                    float startX = 0;
                    float startY;
                    float endX;
                    float endY;
                    switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        startX = (int) event.getX();
                        startY = (int) event.getY();
                        System.out.println("startX" + startX);
                        System.out.println("startY" + startY);
                        break;
                    case MotionEvent.ACTION_MOVE:

                        endX = event.getX();
                        endY = (int) event.getY();
                        System.out.println("endX" + endX);
                        System.out.println("endY" + endY);
                        float sub = endX - startX;
                        System.out.println("sub" + sub);
                        if ((endX - startX) &lt; 100) {
                            arg0.setBackgroundColor(Color.GREEN);

                        }
                        if ((endX - startX) &gt; 100) {
                            try {
                                TextView ph_tv = (TextView) arg0
                                        .findViewById(R.id.textnum);
                                String Pho_no = ph_tv.getText().toString();
                                arg0.setBackgroundColor(Color.RED);
                                Intent intent = new Intent(
                                        Intent.ACTION_CALL, Uri
                                                .parse("tel:" + Pho_no));
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                startActivity(intent);
                                lv.setBackgroundColor(Color.BLACK);

                            } catch (ActivityNotFoundException e) {
                                Toast.makeText(
                                        getApplicationContext(),
                                        "Error in your phone call"
                                                + e.getMessage(),
                                        Toast.LENGTH_LONG).show();

                            }
                            section(path_name, lv1);

                        }
                        break;

                    case MotionEvent.ACTION_UP:
                        endX = (int) event.getX();
                        endY = (int) event.getY();
                    }
                    return true;
                }

            });
</code></pre>
