我有一个 TextView,我想使用动画多次更改大小,类似于在 CSS 中使用关键帧的方式:
@keyframes scaleUp {
0% { transform: scale(0,0); }
50% { transform: scale(1,1); }
70% { transform: scale(0,0); }
100% { transform: scale(1,1); }
}
然而,在 XML 中,我能够找到的制作动画的唯一方法如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="3000"/>
</set>
android:fromXScale
和 android:toXScale
相当于我的 CSS 代码示例中的 0% 和 100%。是否有相当于 50% 和 70% 的值,或者是否有可能以其他方式达到类似的效果?如果是,怎么办?
最佳答案
如果有人仍然想知道如何执行此操作,我找到了一个解决方案(我不知道这是否是解决此问题的完美方法,但它有效)。您可以向文件中添加多个动画,每个动画都有一个延迟,即等于所有先前动画的持续时间。这样,后续动画将在前一个动画结束时触发。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="3000"/>
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="3000"
android:startOffset = "3000"/>
</set>
关于android - Android Studio 的 xml 动画中是否可以有多个关键帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346674/