目录
效果展示
由于代码相对简单易懂因此这里只说下原理,方便日后查看
实现原理
●太极控件
整个太极图其实是两半颜色不一样的太极控件组合而成的,其中一半是正常的角度,而另一半是旋转90度后展示出来,而这里的旋转方式是通过Canvas.rotate方法实现的(这样实现是为了方便以后的动画的添加),而太极控件是由三块半圆路径组合起来的,其中上图所示的红色的半圆的半径与蓝色的半径是相同的并且为黑色半圆半径的1/2。
●太极图动画
太极图的动画是利用AnimatorSet将旋转、缩放和颜色变化组合起来利用playTogether方法一起执行,当这些动画执行完毕后再执行位移动画使两半太极控件分开。
●Activity切换动画
这里的效果是太极图打开后就进入了下一个Activity,要实现这个效果需要设置一下Activity的主题。
<style name="translucent" parent="Theme.AppCompat">
<!--背景设为透明-->
<item name="android:windowBackground">@color/colorTrans</item>
<item name="android:windowIsTranslucent">true</item>
<!--修改Activity切换动画-->
<item name="android:activityCloseEnterAnimation">@anim/trans_in</item>
<item name="android:activityCloseExitAnimation">@anim/trans_out</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--去掉标题栏-->
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
这里主要是将Activity的标题栏去掉,然后将Activity的背景设为透明,另外最重要的一点是修改Activity的切换动画,这样才能实现Activity的无缝切换。