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

动画类型

Androidanimation由四种类型组成

XML

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



JavaCode

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


Android动画模式

Animation主要有两种动画模式

一种是tweened animation(渐变动画)

XML JavaCode
alpha AlphaAnimation
scale ScaleAnimation



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

 

XML中 JavaCode
translate TranslateAnimation
rotate RotateAnimation

 

 

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

 

你可能感兴趣的:(Android动画效果translate、scale、alpha、rotate详解)