您的位置:首页 > 移动开发 > Android开发

初识android动画(3)之布局动画

2016-12-14 22:42 316 查看
     有时候在我们切换Activity的时候会觉得这种生硬的切换效果真是弱爆了。那有没有什么办法,让我们在切换Activity的时候会让我们效果更加炫呢?这里介绍几种切换Activity时动画的效果。

      方法一:使用overridePendingTransition(int in,int out)

       假设从A切换到B。其中in表示B进入时的动画效果,out表示A退出时的动画效果。

      我们可以在里面加载我们定义好的动画效果,这里使用一个android内部自带的。我们也可以使用自己的。引用一下我们在res/anim/下定义的动画文件就好。

Intent intent=new Intent(FirstActivity.this,SecoudActivity.class);
startActivity(intent);
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

   我们看到一行代码就可以实现这种动画效果。为A退出时从右边退出。B从左边进入。类似于ViewPager切换动画。

     主要注意的是overridePendingTransition必须要在startActivity之后调用。

     方法二:利用Theme自定义Activity间的切换动画

    我们只需要在我们AndroidManifest.xml里面声明一下我们定义好的动画资源就好了。

先看一下效果图                                     


    我们先定义两个动画:

   alpha_in<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />   alpha_out
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="0.0" />     然后在我们style.xml里面声明
<style name="Anim_fade" parent="android:Theme.NoTitleBar">
<item name="android:windowAnimationStyle">@style/fade</item>
</style>

<style name="fade" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/alpha_in</item>
<item name="android:activityOpenExitAnimation">@anim/alpha_out</item>
<item name="android:activityCloseEnterAnimation">@anim/alpha_in</item>
<item name="android:activityCloseExitAnimation">@anim/alpha_out</item>
</style>   接下来就是在我们的Activity中引用了
<activity
android:name="com.example.anmotiontest.FirstActivity"
android:theme="@style/Anim_fade">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name="com.example.anmotiontest.SecondActvity"
android:theme="@style/Anim_fade">
</activity>   最后一步按照正常的模式由firstActivity进入SecondActivity中就可以了。
         先实现这两种,以后添加。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: