Android动画效果translate、scale、alpha、rotate详解

动画类型

Androidanimation由四种类型组成

XML
alpha渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果


JavaCode
AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果

Android动画模式

Animation主要有两种动画模式

一种是tweened animation(渐变动画)
XMLJavaCode
alphaAlphaAnimation
scaleScaleAnimation


一种是frame by frame(画面转换动画)

XML中JavaCode
translateTranslateAnimation
rotateRotateAnimation

Android动画解析

alpha xml 淡出效果


  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">   
  3. <alpha   
  4.     android:fromAlpha="1.0"    
  5.     android:toAlpha="0.0"    
  6.     android:duration="500"  />   
  7. </set>   
  8. <!--    
  9.     fromAlpha:开始时透明度   
  10.     toAlpha: 结束时透明度   
  11.     duration:动画持续时间 -->  
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<alpha 
    android:fromAlpha="1.0"  
    android:toAlpha="0.0"  
    android:duration="500"  /> 
</set> 
<!--  
    fromAlpha:开始时透明度 
    toAlpha: 结束时透明度 
    duration:动画持续时间 -->

alpha xml 淡入效果

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">   
  3. <alpha   
  4.     android:fromAlpha="0.0"    
  5.     android:toAlpha="1.0"    
  6.     android:duration="500"  />   
  7. </set>   
  8. <!--    
  9.     fromAlpha:开始时透明度   
  10.     toAlpha: 结束时透明度   
  11.     duration:动画持续时间 -->  
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<alpha 
    android:fromAlpha="0.0"  
    android:toAlpha="1.0"  
    android:duration="500"  /> 
</set> 
<!--  
    fromAlpha:开始时透明度 
    toAlpha: 结束时透明度 
    duration:动画持续时间 -->


rotate.xml 旋转效果: 
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <rotate                                        
  4.     android:interpolator="@android:anim/accelerate_decelerate_interpolator"   
  5.     android:fromDegrees="300"   
  6.     android:toDegrees="-360"   
  7.     android:pivotX="10%"   
  8.     android:pivotY="100%"   
  9.     android:duration="10000" />   
  10. </set>   
  11. <!--    
  12.   fromDegrees   动画开始时的角度   
  13.   toDegrees     动画结束时物件的旋转角度,正代表顺时针     
  14.   pivotX    属性为动画相对于物件的X坐标的开始位置  
  15.   pivotY    属性为动画相对于物件的Y坐标的开始位置    -->   
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate 										
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
	android:fromDegrees="300" 
	android:toDegrees="-360" 
	android:pivotX="10%" 
	android:pivotY="100%" 
	android:duration="10000" /> 
</set> 
<!--  
  fromDegrees  	动画开始时的角度 
  toDegrees    	动画结束时物件的旋转角度,正代表顺时针   
  pivotX  	属性为动画相对于物件的X坐标的开始位置
  pivotY 	属性为动画相对于物件的Y坐标的开始位置    --> 


scale.xml 缩放效果: 

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">   
  3. <scale     
  4.     android:interpolator= "@android:anim/decelerate_interpolator"         
  5.     android:fromXScale="0.0"     
  6.     android:toXScale="1.5"     
  7.     android:fromYScale="0.0"     
  8.     android:toYScale="1.5"     
  9.     android:pivotX="50%"     
  10.     android:pivotY="50%"     
  11.     android:startOffset="0"     
  12.     android:duration="10000"    
  13.     android:repeatCount="1"     
  14.     android:repeatMode="reverse"  />   
  15. </set>   
  16.   
  17. <!--    
  18. fromXDelta,fromYDelta       起始时X,Y座标,屏幕右下角的座标是X:320,Y:480   
  19. toXDelta, toYDelta      动画结束时X,Y的座标 --> <!--    
  20. interpolator                    指定动画插入器  
  21. 常见的有加速减速插入器         accelerate_decelerate_interpolator  
  22. 加速插入器               accelerate_interpolator,  
  23. 减速插入器               decelerate_interpolator。   
  24. fromXScale,fromYScale,         动画开始前X,Y的缩放,0.0为不显示,  1.0为正常大小  
  25. toXScale,toYScale,          动画最终缩放的倍数, 1.0为正常大小,大于1.0放大  
  26. pivotX,  pivotY         动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始   
  27. startOffset,                动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,  
  28.                     单位毫秒 duration,一次动画效果消耗的时间,单位毫秒,  
  29.                     值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次   
  30.                     repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。  
  31.                     restart为重新执行,方向不变 -->  
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale   
	android:interpolator= "@android:anim/decelerate_interpolator"   	
	android:fromXScale="0.0"   
	android:toXScale="1.5"   
	android:fromYScale="0.0"   
	android:toYScale="1.5"   
	android:pivotX="50%"   
	android:pivotY="50%"   
	android:startOffset="0"   
	android:duration="10000"  
	android:repeatCount="1"   
	android:repeatMode="reverse"  /> 
</set> 

<!--  
fromXDelta,fromYDelta   	起始时X,Y座标,屏幕右下角的座标是X:320,Y:480 
toXDelta, toYDelta     	动画结束时X,Y的座标 --> <!--  
interpolator                    指定动画插入器
常见的有加速减速插入器	        accelerate_decelerate_interpolator
加速插入器		    	accelerate_interpolator,
减速插入器		    	decelerate_interpolator。 
fromXScale,fromYScale,         动画开始前X,Y的缩放,0.0为不显示,  1.0为正常大小
toXScale,toYScale,	        动画最终缩放的倍数, 1.0为正常大小,大于1.0放大
pivotX,  pivotY	    	动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始 
startOffset,		    	动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,
		    		单位毫秒 duration,一次动画效果消耗的时间,单位毫秒,
		    		值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次 
			    	repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。
			    	restart为重新执行,方向不变 -->




translate.xml 移动效果: 
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <translate   
  4.     android:fromXDelta="320"   
  5.     android:toXDelta="0"   
  6.     android:fromYDelta="480"   
  7.     android:toYDelta="0"   
  8.     android:duration="10000" />   
  9. </set>   
  10. <!--    
  11. fromXDelta,fromYDelta   起始时X,Y座标,屏幕右下角的座标是X:320,Y:480   
  12. toXDelta, toYDelta     动画结束时X,Y的座标 -->   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值