在布局中滑动动画:android

时间:2012-02-28 09:55:59

标签: android layout

我知道动画效果以及如何将它们应用于onclicklistener,ontouchlistener等的视图(布局),但是当我向左或向右滑动布局时会发生哪种事件。

previousButton.setOnClickListener(new OnClickListener()  {
      @Override 
        publicvoid onClick(View v) {  
              viewFlipper.setInAnimation(MainActivity.this,R.anim.view_transition_in_right);
               viewFlipper.setOutAnimation(MainActivity.this,R.anim.view_transition_out_right);
               viewFlipper.showPrevious();  
      }  
    });  
}

我不想要onclicklistener。 ie)如果我触摸并将当前布局向左滑动,它应该出去,下一个布局应该在当前视图中。如何做到这一点?

3 个答案:

答案 0 :(得分:1)

让您的活动实现onGestureListener。

然后在你的活动中添加

private GestureDetector gestureScanner;
gestureScanner = new GestureDetector(this);
private static final int SWIPE_MIN_DISTANCE = 100;
    private static final int SWIPE_THRESHOLD_VELOCITY = 100;

然后覆盖onTouchEvent(MotionEvent事件),如下所示:

@Override
    public boolean onTouchEvent(MotionEvent event) {
        return gestureScanner.onTouchEvent(event);
    }

最后,您需要覆盖onFling方法,例如:

@Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        /* on scroll to the next page */
        if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
                ) {
            //Ur code goes here
        }
        /* on scroll to the previous page  */
        else if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
                ) {
            //ur code goes here.
        }
        return false;
    }

希望这有帮助。

答案 1 :(得分:0)

您应该使用Fragments在视图之间滑动。使用FragmentActivity和Fragment(对于每个视图)。android developers example

或者您可以使用此opensource library

答案 2 :(得分:0)

您需要View寻呼机 -

ViewPager

非常容易实现,您只需使用与ListView类似的方式提供适配器。