gpt4 book ai didi

Android XML 脉冲动画无法按预期工作

转载 作者:行者123 更新时间:2023-11-30 01:19:50 26 4
gpt4 key购买 nike

我正在尝试编写一个模拟脉冲动画的动画,类似于:

关注内部蓝色圆圈(忽略外部深蓝色圆圈)

http://www.joedubs.com/wp-content/uploads/2016/01/breathe-now.gif

到目前为止,这是我设法编写的代码:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:duration="2000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.8"
android:toYScale="0.8" />

<scale
android:duration="2000"
android:fromXScale="0.8"
android:fromYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="2000"
android:toXScale="1.8"
android:toYScale="1.8" />

<scale
android:duration="2000"
android:fromXScale="1.8"
android:fromYScale="1.8"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="2000"
android:toXScale="1"
android:toYScale="1" />
</set>

虽然这在一定程度上起作用,但当它再次重复时,动画会跳跃和断断续续。有人可以稍微调整一下以模仿平滑的脉冲动画吗? (增长和减少)

最佳答案

您可以像这样添加一个 ObjectAnimator,在反向模式下创建脉动效果:

ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(ImageView,
PropertyValuesHolder.ofFloat("scaleX", 0.5f),
PropertyValuesHolder.ofFloat("scaleY", 0.5f));
scaleDown.setDuration(300);

scaleDown.setRepeatCount(ObjectAnimator.INFINITE);
scaleDown.setRepeatMode(ObjectAnimator.REVERSE);

scaleDown.start();

实现它的另一种方法是拥有一个 CustomClass 并覆盖您的 OnDraw 方法,创建增加或减少增加变量并调用 invalidate() 的效果。我在另一篇文章中做了这些以使我的按钮背景变大,如果你想按照这种方式进行操作,它可能对你有用。

Pulsating Button Android

关于Android XML 脉冲动画无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270577/

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