【发布时间】:2015-12-19 03:25:45
【问题描述】:
我正在尝试找出如何在 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>
【问题讨论】:
-
什么不起作用?特定代码崩溃了吗?请提供更多详细信息。
-
@QVDev 首先,我不能使用指南中的 objectanimator,因为它在 android 支持包中不可用,所以代码在那里崩溃,直到我切换到补间动画。然后,我根本没有任何翻转效果。我不确定是否是因为我在那里使用了不同的插值器元素;我使用这个 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 因为我需要支持 api 8 级,而指南中的那个是 api 11 向上的。
-
所以当你把它改成补间时它工作正常吗?这确实可能是因为 api 级别。也许将 tween 用于较旧的 api 并为较新的 api 使用翻转?或者创建自定义翻转动画
-
@QVDev 不。我无法让它工作。我一定在xml中做错了什么。我会把它贴在这里,让你看看我是否错了。请问您有任何设置或如何创建自定义翻转动画吗?..
-
这里也一样!你解决了吗?
标签: android