按顺序设置Horizo​​ntalScrollView的动画。

时间:2014-07-30 23:16:55

标签: android animation

所以在我的Android应用程序中,我有一个可以显示图像的Horizo​​ntalScrollView。所有图像都会下载并添加到视图中,然后才能供用户使用。然而,当它发生时,我希望每个图像都能分开制作动画。我已经尝试使用此代码附加到我的布局的LayoutTransition对象来显示视图:

    transition = new LayoutTransition();
    transition.setStagger(LayoutTransition.APPEARING, 500);
    transition.setDuration(1000);
    transition.setAnimateParentHierarchy(true);

    for (int i = 0; i < mGallery.getChildCount(); i++) {
        mGallery.getChildAt(i).setVisibility(View.VISIBLE);
        transition.showChild(mGallery, mGallery.getChildAt(i));
    }

我也使用了AnimationEndListener和递归的animateView()方法尝试了这个方法

    private void animateView(final int index) {
    if (mGallery.getChildAt(index) == null)
        return;
    final View child = mGallery.getChildAt(index);
    final Animation an = AnimationUtils.loadAnimation(mRootView.getContext(), R.anim.slideup);

    AnimationEndListener listener = new AnimationEndListener() {

        @Override
        public void onAnimationEnd(Animation animation) {
            animateView(index + 1);
        }
    };

    an.setAnimationListener(listener);
    child.setAnimation(an);
    child.setVisibility(View.VISIBLE);
    an.start();
}

第一种方法是优选的,但它总是在我的所有图像中同时动画。第二种方法有效,但它会将动画应用于第一个视图,所有后续视图将按顺序出现而不播放动画。

0 个答案:

没有答案