gpt4 book ai didi

android - 在使用 valueAnimator 重复动画之前添加延迟

转载 作者:太空狗 更新时间:2023-10-29 16:37:05 26 4
gpt4 key购买 nike

我正在尝试一个简单的示例,例如使用 TextView 并将其从屏幕宽度的 0% 转换为 100%

代码是:

    anim0  = ObjectAnimator.ofFloat(textViewId00, "translationX", -120f, 480f);

其中 480f 是我的屏幕宽度。

我想要的是接下来的 N 次(我的示例中 n=5 )在它开始之前添加延迟。

我尝试在 onAnimationRepeat 上使用 setStartDelay() 方法添加延迟,但没有效果。

我的代码是:

        textViewId00 = (TextView) findViewById(R.id.textViewId00);


anim0 = ObjectAnimator.ofFloat(textViewId00, "translationX", -120f, 480f);
anim0.setDuration(2000);
anim0.setRepeatCount(5);
anim0.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
Log.i(TAG, "anim0 onAnimationStart ");
textViewId00.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationEnd(Animator animation) {
Log.i(TAG, "anim0 onAnimationEND " );
}

@Override
public void onAnimationCancel(Animator animation) {

}

@Override
public void onAnimationRepeat(Animator animation) {
Log.i(TAG, "anim0 onAnimation REPEAT " );
anim0.setStartDelay(14000);
}
});
anim0.start();

textView 出现在屏幕上,移动直到消失,然后从头开始,没有任何延迟。

最佳答案

我刚刚使用这段代码进行了尝试,看起来它正在执行您想要的操作:

public void animateView() {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);

final int screenWidth = size.x;

final ObjectAnimator anim0 = ObjectAnimator.ofFloat(textviewId00, "translationX", -120f, screenWidth);
anim0.setDuration(2000);
anim0.addListener(new Animator.AnimatorListener() {

int count;

@Override
public void onAnimationStart(Animator animation) {
textViewId00.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationEnd(Animator animation) {
if (++count < 5) {
anim0.setStartDelay(14000);
anim0.start();
}
}

@Override
public void onAnimationCancel(Animator animation) {}

@Override
public void onAnimationRepeat(Animator animation) {}
});
anim0.start();
}

关于android - 在使用 valueAnimator 重复动画之前添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com