【问题标题】:Java - Endless while loop with FadeIn & FadeOut animationJava - 带有 FadeIn 和 FadeOut 动画的无休止的 while 循环
【发布时间】:2018-08-01 18:47:03
【问题描述】:

我需要在 Recyclerview 上显示带有 FadeIn 和 FadeOut 动画的文本。

下面是需要循环无限项的动态列表,即; 1-2-3-1-2-3-1-2-3

List<String> mImageDesc = new List<String>();
mImageDesc.add("1");
mImageDesc.add("2");
mImageDesc.add("3");

我使用了下面的代码,但它不适合我。

final  Animation animationFadeIn = AnimationUtils.loadAnimation(mContext, R.anim.fade_in_animation);
        final Animation animationFadeOut = AnimationUtils.loadAnimation(mContext, R.anim.fade_out_animation);

        Animation.AnimationListener animListener = new Animation.AnimationListener(){

            // Required to change the image
            int i = 0;

            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {

                if (animation == animationFadeIn) {
                    // Start fade-out animation
                    mTxtImageDescription.startAnimation(animationFadeOut);
                } else if (animation == animationFadeOut) {
                    *while(mImageDesc.listIterator().hasNext()) {
                        System.out.println(mImageDesc.listIterator().next());
                        mTxtImageDescription.setText(mImageDesc.listIterator().next());
                        mTxtImageDescription.startAnimation(animationFadeIn);*
                    }
                }
            }
        };

        // Set listener to animation
        animationFadeIn.setAnimationListener(animListener);
        animationFadeOut.setAnimationListener(animListener);

        // Start fade-in animation
        mTxtImageDescription.setText(mImageDesc.get(0));
        mTxtImageDescription.startAnimation(animationFadeIn);

【问题讨论】:

  • 只需打印mImageDesc.listIterator().next(),您就可以“使用它”,并且对mImageDesc.listIterator().next() 的下一行调用已经在下一个项目上

标签: java android while-loop fadein fadeout


【解决方案1】:

在您的 while 循环的最后一行中,您重新启动了“animationFadeIn”,所以 'animListener' 回调将被永远调用。请注意,如果 while 循环是重复的,你将有 'StackOverflowError'。

【讨论】:

  • @Omod Nejabbasi,对此有什么解决方案?
  • 每个动画可以使用两个不同的AnimationListener
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2019-12-23
  • 2017-08-29
  • 2011-08-17
  • 2011-12-13
  • 2011-11-29
相关资源
最近更新 更多