如何从中心开始新活动作为一个消耗的圈子

Ros*_*pin 9 android android-animation android-activity

我想从屏幕中心开始一个新的活动作为一个消耗的圈子,所以活动将显示为这样的圆圈.

例

这是我当前的代码anim.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXScale="0"
    android:fromYScale="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1"
    android:toYScale="1" >
</scale>
Run Code Online (Sandbox Code Playgroud)

animback.xml

    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="1000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" >
    </scale>
</set>
Run Code Online (Sandbox Code Playgroud)

调用动画

overridePendingTransition(R.anim.anim,R.anim.animback);
Run Code Online (Sandbox Code Playgroud)

当前代码只是放大了新活动,但我希望活动从中心显示为一个圆圈.

vok*_*lam 1

我不确定过渡动画是否可行。

也许可以通过以下方式达到预期的结果:

  • 在转换之前制作 Activity A 的屏幕截图
  • 转移到没有动画的 Activity B
  • 将活动 A 屏幕截图叠加到活动 B 上
  • 动画叠加(应用自定义绘图)

或者

  • 使活动 B 透明
  • 转移到 Activity B(没有动画)
  • 动画 Activity B 布局(应用自定义绘图)

另请参阅:DevBytes:自定义活动动画