Android Activity 的二种方式切换动画

来源:互联网 发布:模特 李荣浩 知乎 编辑:程序博客网 时间:2024/06/01 10:38

                                         Android Activity 的二种方式切换动画

Android系统默认Activity间的动画切换效果为,右边滑入,左边滑出.如果我们需要一些其他的效果就需要自己去定义一些动画了.

下面介绍两种实现的方式:
第一种:   使用Theme自定义切换动画
1  .   在res文件下建立 animo文件夹(studio)  --如果是eclipse建立anim文件夹, 在里面建立动画资源.
anim_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
 
 
    <scale
        android:duration="200"
        android:fromXScale="0.7"
        android:fromYScale="0.7"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1"
        android:toYScale="1" />
 
 
    <alpha
        android:duration="200"
        android:fromAlpha="0"
        android:toAlpha="1.0" />
 
 
</set>
anim_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <scale
        android:duration="200"
        android:fromXScale="1"
        android:fromYScale="1"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.7"
        android:toYScale="0.7" />
 
    <alpha
        android:duration="200"
        android:fromAlpha="1"
        android:toAlpha="0" />
 
</set>
2. 在values文件夹下定义style样式: 
  1. <style name="Anim_fade" parent="android:Theme.NoTitleBar">  
  2.        <item name="android:windowAnimationStyle">@style/fade</item>  
  3.    </style>  
  4.   
  5.    <style name="fade" parent="@android:style/Animation.Activity">  
  6.        <item name="android:activityOpenEnterAnimation">@animtor/anim_in</item>  
  7.        <item name="android:activityOpenExitAnimation">@animtor/anim_out</item>  
  8.        <item name="android:activityCloseEnterAnimation">@animtor/anim_in</item>  
  9.        <item name="android:activityCloseExitAnimation">@animtor/anim_out</item>  
  10.    </style>  
3. 在清单文件AndroidManifest.xml中所要使用动画的activity的声明中加上android:theme="@style/Anim_fade"
  • <?xml version="1.0" encoding="utf-8"?>  
  • <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  •     package="com.example.customanimationforactivity"  
  •     android:versionCode="1"  
  •     android:versionName="1.0" >  
  •   
  •     <uses-sdk  
  •         android:minSdkVersion="10"  
  •         android:targetSdkVersion="10" />  
  •   
  •     <application  
  •         android:allowBackup="true"  
  •         android:icon="@drawable/ic_launcher"  
  •         android:label="@string/app_name"  
  •         android:theme="@android:style/Theme.NoTitleBar" >  
  •         <activity  
  •             android:name="com.example.customanimationforactivity.MainActivity"  
  •             android:label="@string/app_name"  
  •             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=".TwoActivity" android:theme="@style/Anim_fade" >  
  •         </activity>  
  •     </application>  
  •   
  • </manifest> 
  • 第二种: 代码中实现

    Activity A跳转到Activity B,要在startActivity(intent)后面加上overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

    Activity B返回Activity A,要在finish()后面加上overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

    anim_in是进入的Activity的动画,anim_out是退出的Activity的动画。

    0 0
    原创粉丝点击