android - Android Studio 的 xml 动画中是否可以有多个关键帧?

标签 android css xml

我有一个 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:fromXScaleandroid: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/

相关文章:

xml - 使用 xslt 将字符转换为 xml 节点

java - 提取 XML 的某些部分

android - C2DM注册需要多长时间

asp.net - 如何让一个div固定大小,让其他div占据所有剩余空间?

android - 水平格子线android textview

css - 从下到上包装 HTML 元素

iphone - CSS:如果媒体类型是短语,如何将 <link media =""/> 设置为带有 @media 的内联 CSS?

java - 巨大的 XML 文件到文本文件

android - 三星 Galaxy S2(4.0.3) 的共享首选项问题

java - 使用复选框的动态方式