2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > android+清除循环动画 android - 如何使用ViewPropertyAnimator生成循环动画?

android+清除循环动画 android - 如何使用ViewPropertyAnimator生成循环动画?

时间:2021-03-23 20:19:01

相关推荐

android+清除循环动画 android - 如何使用ViewPropertyAnimator生成循环动画?

我想构建一个TextViews动画,在完成后会自动重复。

对于我要设置动画的每个View,我使用以下代码final float oldX = v.getX();

final float newX = v.getX() - (float)totalWidth;

final AnimatorListenerAdapter listener = new AnimatorListenerAdapter() {

@Override

public void onAnimationEnd(Animator animation) {

v.setX(oldX);

animFinished = true;

//This line won't compile

//v.animate().setDuration(animDuration).setInterpolator(newsInterpolator)

// .setListener(listener).x(newX);

}

};

v.animate().setDuration(animDuration).setInterpolator(newsInterpolator)

.setListener(listener).x(newX);

我试图将最后一段代码放入onAnimationEnd中,但是Java不会编译,因为它认为对象监听器未初始化。而且,我认为这种“递归”动画调用不是一个好的解决方案,这是我想到的第一件事。我怀疑是否有一种简单而健全的方法来实现循环属性动画,但是我找不到它,因此我在这里寻求帮助。

提前致谢

最佳答案

好吧,我将再次回答自己。

TranslateAnimation类具有有关重复动画的方法,因此我用它代替了ViewPropertyAnimator。

以下代码似乎有效:long duration = 1000* ((long)totalWidth / newsScrollSpeed);

System.out.println("totalWidth="+totalWidth);

TranslateAnimation anim = new TranslateAnimation(0,-totalWidth,0,0);

anim.setInterpolator(linearInterpolator);

anim.setDuration(duration);

anim.setRepeatCount(TranslateAnimation.INFINITE);

anim.setRepeatMode(TranslateAnimation.RESTART);

for(i=0;i

{

View v = this.getChildAt(i);

if(v.getId() == R.id.yuruyen_yazi)

{

continue;

}

v.startAnimation(anim);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。