使用动画滑动视图

时间:2011-08-24 14:24:29

标签: android android-animation

我有一个FrameLayout可以识别滑动手势(向上和向下)。

例如:如果执行了向上滑动,我应该为当前视图(即MATCH_PARENT x MATCH_PARENT)设置动画,以便在新视图从底部出现的同时上升。

我可以用动画实现这个目标吗?

2 个答案:

答案 0 :(得分:2)

我这样解决了:

private void swipeUp() {
    current.currentPage++;

    final View hidingView = currentView;
    TranslateAnimation hide = new TranslateAnimation(0, 0, 0, -getHeight());
    hide.setAnimationListener(new AnimationListenerAdapter() {
        @Override
        public void onAnimationEnd(Animation animation) {
            hidingView.setVisibility(View.GONE);
        }
    });
    hide.setDuration(1000);
    hidingView.startAnimation(hide);

    TranslateAnimation show = new TranslateAnimation(0, 0, getHeight(), 0);
    show.setFillAfter(true);
    show.setDuration(1000);

    View nextView = getView();
    addView(nextView, createLP());

    nextView.startAnimation(show);
    currentView = nextView;
}

答案 1 :(得分:1)

如果要实际切换视图,则需要实现负责动画的AnimationListener。如果你想要更复杂的行为,比如视图之间的“手指跟随”滚动,你可能不得不使用更复杂的东西,但如果你只是说

if(I flicked upwards)
    move view up

然后AnimationListener非常适合你。只需确保将侦听器设置为代码中的Animation

希望这有帮助!