villanuevaquelin
villanuevaquelin

Reputation: 944

how to make left right activity slider?

Any suggestions for how to make an activity slider with "slide left" and "slide right" like a typical image slider??

I tried with: (implements OnTouchListener)

public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction())
    {
        case MotionEvent.ACTION_DOWN:
        {       
              // code 
                 break; 
        }
        case MotionEvent.ACTION_UP:
        {             
               // code
             break;
        }
        case MotionEvent.ACTION_MOVE:
        {  
           // code
            break;
        }
    }
    return true;
}

but don't have LEFT, RIGHT choice.

I don't need use buttons, just I need do somethings like the image slider for ipad2 but with activities for a customer app.

Thanks

Upvotes: 0

Views: 1079

Answers (1)

Sunil Kumar Sahoo
Sunil Kumar Sahoo

Reputation: 53667

You need to calculate by your own for slide left and right movement

MotionEvent.ACTION_UP

A pressed gesture has finished, the motion contains the final release location as well as any intermediate points since the last down or move event.

MotionEvent.ACTION_DOWN

A pressed gesture has started, the motion contains the initial starting location.

Use onTouchEvent(), and calculate difference in X and difference in Y by where the user presses down and lifts up. Use these values to figure out the direction of the move.

float x1, x2, y1, y2;
String direction;
switch(event.getAction()) {
        case(MotionEvent.ACTION_DOWN):
            x1 = event.getX();
            y1 = event.getY();
            break;
        case(MotionEvent.ACTION_UP) {
            x2 = event.getX();
            y2 = event.getY();
            float differenceInX = x2-x1;
            float differenceInY = y2-y1;

                // Use dx and dy to determine the direction
            if(Math.abs(differenceInX) > Math.abs(differenceInY)) {
                if(differenceInX > 0) direction = "right";
                else direction = "left";
            } else {
                if(differenceInY > 0) direction = "down";
                else direction = "up";
            }
        }
        }

Upvotes: 1

Related Questions