当前位置:操作系统 > 安卓/Android >>

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

动画类型

Android的animation由四种类型组成

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 淡出效果

 

 

[cpp] 
<?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:动画持续时间 -->
[cpp] 
<?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:动画持续时间 --> 

<?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 淡入效果


[cpp]
<?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:动画持续时间 -->
[cpp]
<?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:动画持续时间 --> 

<?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 旋转效果:
[html] 
<?xmlversion="1.0"encoding="utf-8"?>
<setxmlns: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坐标的开始位置 -->
[html] view plaincopyprint?
<?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坐标的开始位置    -->  

<?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 缩放效果:


[cpp] 
<?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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,