如何制作左右活动滑块?

时间:2012-03-08 12:51:41

标签: android android-activity slider

有关如何使用“向左滑动”和“向右滑动”制作活动滑块的任何建议,如典型的图像滑块吗?

我尝试过:(实现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;
}

但没有LEFT,RIGHT选择。

我不需要使用按钮,只需要做一些事情,比如ipad2的图像滑块,但有一个客户应用程序的活动。

由于

1 个答案:

答案 0 :(得分:1)

您需要自己计算左右滑动

<强> 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";
            }
        }
        }