Android场景转换:自定义插值器?

时间:2015-04-25 17:15:51

标签: android android-animation transitions

我启动了一个带有共享元素的场景转换活动,它可以正常工作。

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), sharedView, "sharedView");
Intent intent = new Intent(getActivity(), NewActivity.class);
ActivityCompat.startActivity(getActivity(), intent, options.toBundle());

从旧活动到新活动,元素可以平滑地生成动画。但是,我想改变过渡动画的方式,特别是内插器。它似乎是使用默认的平滑插值器,但我想使用新的Material fast-out-slow-in插值器,我无法弄清楚如何指定它。

如何覆盖默认转换?

1 个答案:

答案 0 :(得分:4)

如果你还没有弄明白:

Windows 0.9.x C:\Users\<user>\.config\robomongo\0.9\robomongo.json 0.8.x C:\Users\<user>\.config\robomongo\robomongo.json MAC 0.9.x /Users/<user>/.config/robomongo/0.9/robomongo.json 0.8.x /Users/<user>/.config/robomongo/robomongo.json Linux 0.9.x /home/<user>/.config/robomongo/0.9/robomongo.json 0.8.x /home/<user>/.config/robomongo/robomongo.json 中新建transitionSet,使用其属性和插补器定义过渡标记,然后将其应用于/res/transition/

中的活动样式

NewActivity的示例

  • /res/values-v21/styles.xml内创建一个new_activity_transition.xml,其中包含以下示例转换标记及其插补器:

    /res/transition/
  • 然后将其设置为共享元素,在<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> <changeImageTransform android:interpolator="@android:interpolator/fast_out_slow_in" /> <arcMotion android:interpolator="@android:interpolator/fast_out_slow_in"/> <changeBounds android:duration="300" android:interpolator="@android:interpolator/fast_out_slow_in"/> </transitionSet>

    中输入转换
    /res/values-v21/styles.xml
  • 不要忘记在<style name="NewActivity"> <item name="android:windowSharedElementEnterTransition">@transition/new_activity_transition</item> </style> 中设置活动主题:

    AndroidManifest.xml