как сделать левый правый слайдер активности? - PullRequest
0 голосов
/ 08 марта 2012

Любые предложения о том, как сделать слайдер активности с "слайдом влево" и "слайдом вправо", как обычный слайдер изображений ??

Я пробовал с: (реализует 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;
}

, но у меня нет ЛЕВОГО, ПРАВОГО выбора.

Мне не нужны кнопки, просто мне нужно сделать что-то вроде слайдера изображений для ipad2, но с действиями для приложения для клиента.

Спасибо

1 Ответ

1 голос
/ 08 марта 2012

Вы должны рассчитать самостоятельно для движения влево и вправо

MotionEvent.ACTION_UP

Нажатый жест имеетКогда движение завершено, движение содержит местоположение окончательного освобождения, а также любые промежуточные точки с момента последнего события падения или перемещения.

MotionEvent.ACTION_DOWN

Нажатый жест запущен, движение содержит начальную начальную позицию.

Используйте onTouchEvent() и для вычисления разницы по X и разницы по Y, по которой пользователь нажимает и поднимает .Используйте эти значения, чтобы выяснить направление движения.

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";
            }
        }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...