gpt4 book ai didi

android - android.support.v4.Fragment 上的 3D 翻转动画

转载 作者:IT老高 更新时间:2023-10-28 23:07:09 30 4
gpt4 key购买 nike

我目前正在阅读本教程:

http://developer.android.com/training/animation/cardflip.html

关于 fragment 的翻转动画。不幸的是,object-animator 仅适用于 android.app.Fragment,而不是 support Fragment。

我尝试使用缩放和旋转动画重建 .xml 动画。但是现在动画只是没有执行,并且在我在动画 .xml 文件中设置的时间过去后,另一个 Fragment 出现了,而不是翻转。

  • 我是不是在实现 .xml 动画时犯了一个错误?
  • 或者说没有object-animator就不能做3D翻转动画吗?
  • 或者在支持下不能做3D翻转动画吗 fragment ?

这是我的 .xml 动画:flip_left_in.xml

<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="800"/>

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

flip_left_out.xml

 <set xmlns:android="http://schemas.android.com/apk/res/android" >

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

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

</set>

flip_right_in.xml

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

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

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

</set>

flip_right_out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Rotate. -->
<rotate
android:duration="800"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="rotationY"
android:valueFrom="0"
android:valueTo="-180" />

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

</set>

这是执行它们的代码:

FragmentTransaction trans = getActivity().getSupportFragmentManager().beginTransaction();

trans.setCustomAnimations(R.anim.flip_right_in, R.anim.flip_right_out,
R.anim.flip_left_in, R.anim.flip_left_out);
trans.addToBackStack(null);

trans.replace(R.id.content_frame, new MyFragment()).commit();

最佳答案

您可以使用 NineOldAndroids .它将 Honeycomb (Android 3.0) 动画 API 一直向后移植到 Android 1.0。您将获得 ObjectAnimator、ValueAnimator 和所有其他好东西。

关于android - android.support.v4.Fragment 上的 3D 翻转动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467415/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com