10

我正在尝试找出如何在 2 个片段之间创建翻转动画。

我曾尝试将CardFlip培训作为指导,但似乎无法实现。我正在使用android支持包并将其设置为补间动画,但不成功。

如何实现片段之间的翻转动画?

这是我从指南创建的前 2 个 xml,也许你可以看看我做错了什么。screen_flip_left_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

     <!-- Before rotating, immediately set the alpha to 0. -->
    <alpha
        android:valueFrom="1.0"
        android:valueTo="0.0"
        android:propertyName="alpha"
        android:duration="0" />

    <!-- Rotate. -->
    <rotate
        android:valueFrom="-180"
        android:valueTo="0"
        android:propertyName="rotationY"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:duration="@integer/card_flip_time_full"/>

    <!-- Half-way through the rotation (see startOffset), set the alpha to 1. -->
    <alpha
        android:valueFrom="0.0"
        android:valueTo="1.0"
        android:propertyName="alpha"
        android:startOffset="@integer/card_flip_time_half"
        android:duration="1" />
</set>

screen_flip_left_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
        <!-- Rotate. -->
    <rotate
        android:valueFrom="0"
        android:valueTo="180"
        android:propertyName="rotationY"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:duration="@integer/card_flip_time_full" />

    <!-- Half-way through the rotation (see startOffset), set the alpha to 0. -->
    <alpha
        android:valueFrom="1.0"
        android:valueTo="0.0"
        android:propertyName="alpha"
        android:startOffset="@integer/card_flip_time_half"
        android:duration="1" />

</set>
4

3 回答 3

1

android:propertyName 仅适用于 ObjectAnimator (Honeycomb+) 动画,不适用于 Gingerbread 的视图动画。只有使用 Honeycomb animator api 才能实现卡片翻转动画。我创建了一个支持库的分支,以允许使用来自NineOldAndroids的 Animator api进行片段转换。使用我的github 项目的 animator-transition 分支。一旦你有了修改后的支持库,请查看http://developer.android.com/training/animation/cardflip.html以制作 animator xml。

于 2013-04-15T01:37:25.077 回答
0

您的 xml 应该在 objectAnimator 标签内包含值,而不是在 alpha 和 rotate 标签内。objectAnimator 具有 propertyName ,其中您已经指定了属性值。

于 2015-12-18T19:25:45.483 回答
-1

那不对!“一旦你修改了支持库,请查看http://developer.android.com/training/animation/cardflip.html以制作动画 xml。”

这并不真正支持 v4 库。

于 2015-05-21T17:50:42.797 回答