Activity界面切换动画


     开发项目中总是会用到一些很炫丽的activity界面之间的动画效果或是Fragment界面之间的动画效果,其实,在中已经可以很简单的实现之间的动画切换效果。在后调用就可以实现之间的动画,其中是下一个的动画效果是当前退出的动画效果,先看看中的执行吧:


public void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);      
        setContentView(R.layout.SplashScreen);     
        new Handler().postDelayed(new Runnable() {     
                @Override     
                public void run() {     
                        Intent mainIntent = new Intent(SplashScreen.this, AndroidNews.class);     
                        SplashScreen.this.startActivity(mainIntent);     
                        SplashScreen.this.finish();     
                        overridePendingTransition(R.anim.mainfadein,     
                                R.anim.splashfadeout);     
                }     
        }, 3000);     
}  

实现淡入淡出的效果:

overridePendingTransition(Android.R.anim.fade_in,android.R.anim.fade_out); 

由左向右滑动的效果:


overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);  

还有一种简单的写法,当然,效果没有上面的好:


getWindow (). setWindowAnimations ( int );  

实现animin和animout,即类似iphone的进入和退出时的效果:

overridePendingTransition(R.anim.zoomin, R.anim.zoomout);

下面我们来看看animin.xml文件里的写法:

<?xml version="1.0" encoding="utf-8"?>    
<set xmlns:Android="http://schemas.android.com/apk/res/android"    
        Android:interpolator="@android:anim/decelerate_interpolator">    
    <scale Android:fromXScale="2.0" android:toXScale="1.0"    
           Android:fromYScale="2.0" android:toYScale="1.0"    
           Android:pivotX="50%p" android:pivotY="50%p"    
           Android:duration="@android:integer/config_mediumAnimTime" />    
</set> 


下面我们来看看animout.xml文件里的写法:


<?xml version="1.0" encoding="utf-8"?>    
<set xmlns:Android="http://schemas.android.com/apk/res/android"    
        Android:interpolator="@android:anim/decelerate_interpolator"    
        Android:zAdjustment="top">    
    <scale Android:fromXScale="1.0" android:toXScale=".5"    
           Android:fromYScale="1.0" android:toYScale=".5"    
           Android:pivotX="50%p" android:pivotY="50%p"    
           Android:duration="@android:integer/config_mediumAnimTime" />    
    <alpha Android:fromAlpha="1.0" android:toAlpha="0"    
            Android:duration="@android:integer/config_mediumAnimTime"/>    
</set>


     在我的CSDN中都是有介绍的,以后有更炫丽的动画效果的话,我会及时的更新的,希望对大家有所帮助,下面我们直接来看看XML中的动画写法(创建anim并创建相应的xml):



 1.透明效果,渐入浅出

----------------in----------

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <alpha  xmlns:android="http://schemas.android.com/apk/res/android"   
  4.         android:duration="3000"  
  5.         android:fromAlpha="0.0"  
  6.         android:toAlpha="1.0"  
  7.         android:repeatMode="reverse"  
  8.         >  
  9.           
  10.     </alpha>  
  11. </set>  

---------------out---------


[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <alpha  xmlns:android="http://schemas.android.com/apk/res/android"   
  4.         android:duration="3000"  
  5.         android:fromAlpha="1.0"  
  6.         android:toAlpha="0.0"  
  7.         android:repeatMode="reverse"  
  8.         >  
  9.           
  10.     </alpha>  
  11. </set>  



2.左右推动 透明渐变带黑色区域

--------in-------------
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="300"  
  6.         android:fromXDelta="100%p"  
  7.         android:toXDelta="0" />  
  8.   
  9.     <alpha  
  10.         android:duration="300"  
  11.         android:fromAlpha="0.0"  
  12.         android:toAlpha="1.0" />  
  13.   
  14. </set>  

----------out------------

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="300"  
  6.         android:fromXDelta="0"  
  7.         android:toXDelta="-100%p" />  
  8.   
  9.     <alpha  
  10.         android:duration="300"  
  11.         android:fromAlpha="1.0"  
  12.         android:toAlpha="0.0" />  
  13.   
  14. </set>  

    

    3.左右推动 透明渐变无黑色区域

----------in_from_right------------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="260"
        android:fromXDelta="100%p"
        android:toXDelta="0%p"></translate>
</set>
----------out_from_left------------

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="260"
        android:fromXDelta="0%p"
        android:toXDelta="-100%p"></translate>
</set>

4.由上往下推动 透明渐变


---------in---------------
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="500"  
  6.         android:fromYDelta="100.0%p" />  
  7.   
  8.     <alpha  
  9.         android:duration="500"  
  10.         android:fromAlpha="0.5"  
  11.         android:interpolator="@android:anim/accelerate_interpolator"  
  12.         android:toAlpha="1.0" />  
  13.   
  14. </set>  

----------out--------

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="500"  
  6.         android:toYDelta="100.0%p" />  
  7.   
  8.     <alpha  
  9.         android:duration="500"  
  10.         android:fromAlpha="0.5"  
  11.         android:interpolator="@android:anim/accelerate_interpolator"  
  12.         android:toAlpha="1.0" />  
  13.   
  14. </set>  

   5.从左至右的带弹性的动画

(1)用200毫秒时间先向后移动2%p的位置 (2) 延迟200毫秒后从2%p位置向前移动到-100%p位置。 然后第2个Activity从延迟200毫秒然后从102%p位置移动到0%p位置。
  ----------new_left----------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >
 
    <translate
        android:duration="200"
        android:fromXDelta="0%p"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="2%p" />
    <translate
        android:duration="1000"
        android:fromXDelta="2%p"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="200"
        android:toXDelta="-100%p" />
 
</set>

---------- new_light----------
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromXDelta="102%p"
    android:interpolator="@android:anim/anticipate_overshoot_interpolator"
    android:startOffset="200"
    android:toXDelta="0%p" />

6.退出动画

--------从屏幕上方退出-------
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?  
  2.   
  3. xmlversion="1.0"encoding="utf-8"?>  <translatexmlns:android="http://schemas.android.com/apk/res/android"   
  4.   
  5. android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="0%p" android:toYDelta="-100%p" android:duration="1000"> </translate>   

--------从屏幕下方进入---------

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xmlversion="1.0"encoding="utf-8"?>  <translatexmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="100%p" android:toYDelta="0%p" android:duration="1000"> </translate>  
  2.    



OK了,还有很多还没有涉及到,以后发现更多的,我会追加的~   点击下载Demo      点击免费下载案例

                                                                                                                                                                                                                                             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值