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 からのビュー アニメーション用ではありません。カードめくりアニメーションは、ハニカム アニメーター API を使用した場合にのみ可能です。サポート ライブラリのフォークを作成して、フラグメント トランジションにNineOldAndroidsの Animator API を使用できるようにしました。私のgithub プロジェクトの animator-transition ブランチを使用してください。サポート ライブラリを変更したら、http://developer.android.com/training/animation/cardflip.htmlを参照してアニメーター xml を作成します。

于 2013-04-15T01:37:25.077 に答える
0

xml には、alpha および rotate タグ内ではなく、objectAnimator タグ内に値を含める必要があります。objectAnimator には、すでにプロパティ値を指定した propertyName があります。

于 2015-12-18T19:25:45.483 に答える