gpt4 book ai didi

java - Android使按钮连续淡入淡出

转载 作者:搜寻专家 更新时间:2023-11-01 07:50:01 25 4
gpt4 key购买 nike

我正在尝试让一个按钮连续淡入和淡出,但我似乎无法弄明白。

在 OnCreate 中:

Button playbtn =(Button) findViewById(R.id.playbutton);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.tween);
playbtn.startAnimation(myFadeInAnimation);

补间 xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="1000"
android:repeatMode="reverse"
android:repeatCount="infinite" />
</set>

感谢您的帮助。

最佳答案

你可以这样做:

private void fadeIn() {
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mButton, "alpha", 0f, 1f);
objectAnimator.setDuration(500L);
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
fadeOut();
}
});
objectAnimator.start();
}

private void fadeOut() {
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mButton, "alpha", 1f, 0f);
objectAnimator.setDuration(500L);
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
fadeIn();
}
});
objectAnimator.start();
}

您可以通过跟踪状态(淡入、淡出)将这两种方法合并为一个方法来进行改进。您还应该添加一个函数来取消动画(您可以从这些函数返回动画师,然后对其调用取消)。

编辑:要取消,你可以这样做——创建一个成员变量来保存你当前的动画师,然后简单地取消它:

private ObjectAnimator objectAnimator;

private void fadeOut() {
objectAnimator = ObjectAnimator.ofFloat(mButton, "alpha", 1f, 0f);
objectAnimator.setDuration(500L);
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
fadeIn();
}
});
objectAnimator.start();
}

private void cancelAnimator() {
if (objectAnimator != null) {
objectAnimator.cancel();
objectAnimator = null;
}
}

关于java - Android使按钮连续淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36097357/

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