欢迎使用CSDN-markdown编辑器

  • Animation 动画详解
    • alpha透明度控制动画效果
    • rotate 旋转动画效果
    • scale尺寸伸缩动画效果
    • set设置多种动画
    • translate 位置转移动画效果
    • 源码下载

Animation 动画详解

下面是5中不同的xml

  • alpha
  • scale
  • translate
  • rotate
  • set

alpha透明度控制动画效果

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="3000" android:fillBefore="true">
</alpha>


<!-- 透明度控制动画效果 alpha 浮点型值: fromAlpha 属性为动画起始时透明度 toAlpha 属性为动画结束时透明度 说明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 -->

rotate 旋转动画效果

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="650" android:pivotX="50%" android:pivotY="50%" android:duration="3000" android:fillAfter="true">

</rotate>


<!-- rotate 旋转动画效果 属性:interpolator 指定一个动画的插入器 在我试验过程中,使用android.res.anim中的资源时候发现 有三种动画插入器: accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 浮点数型值: fromDegrees 属性为动画起始时物件的角度 toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 说明: 当角度为负数——表示逆时针旋转 当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转) pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 说明: 以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 -->

scale尺寸伸缩动画效果

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:toXScale="1.4"
    android:fromYScale="0.0"
    android:toYScale="1.4"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" 
    android:fillBefore="true"
    android:repeatCount="1"
    android:repeatMode="restart"
/>
<!-- 
fade_in :不可用
fade_out:不可用
slide_in_left:不可用
slide_out_right:不可用
 -->
<!-- 
android:repeatMode
int. How an animation behaves when it reaches the end of the animation. 

android:repeatCount must be set to a positive integer or "-1" for this attribute to have an effect. 
Set to "reverse" to have the animation reverse direction with each iteration or 
"repeat" to have the animation loop from the beginning each time. 

android:pivotX
Float or percentage. The X coordinate of the center of rotation.
 Expressed either: in pixels relative to the object's left edge (such as "5"), 
 in percentage relative to the object's left edge (such as "5%"),
 or in percentage relative to the parent container's left edge (such as "5%p").

android:pivotX="50%p" 表示在他的原点上,加上父亲X轴宽度的50%;高度同理
-->
<!-- 
Animation变化坐标点的参照类型

上面看到,RotateAnimation、ScaleAnimation、TranslateAnimation都存在一对pivotXType,pivotYType参数,
它们是用来指定点的参照类型,使用int类型以静态常量的形式定义在Animation中,它有如下个值:

ABSOLUTE:以绝对坐标为参照。
RELATIVE_TO_PARENT:以父容器为参照。
RELATIVE_TO_SELF:以当前容器为参照。
  细心的朋友有发现到,在使用XML定义动画资源的时候,没有关于pivotXType、pivotYType两个属性,其实它们结合到了设定点的坐标中中,
以 pivotXValue、pivotYValue两个属性替代,其中如果需要设定为父容器为参照,需要在属性值后面加"p"即可。 
-->

<!-- 尺寸伸缩动画效果 scale
       属性:interpolator 指定一个动画的插入器
        在我试验过程中,使用android.res.anim中的资源时候发现
        有三种动画插入器:
            accelerate_decelerate_interpolator  加速-减速 动画插入器
            accelerate_interpolator         加速-动画插入器
            decelerate_interpolator         减速- 动画插入器
        其他的属于特定的动画效果
      浮点型值:

            fromXScale 属性为动画起始时 X坐标上的伸缩尺寸    
            toXScale   属性为动画结束时 X坐标上的伸缩尺寸     

            fromYScale 属性为动画起始时Y坐标上的伸缩尺寸    
            toYScale   属性为动画结束时Y坐标上的伸缩尺寸    

            说明:
                 以上四种属性值    

                    0.0表示收缩到没有 
                    1.0表示正常无伸缩     
                    值小于1.0表示收缩  
                    值大于1.0表示放大

            pivotX     属性为动画相对于物件的X坐标的开始位置(坐标原点X点坐标)
            pivotY     属性为动画相对于物件的Y坐标的开始位置(坐标原点Y点坐标)

            说明:
                    以上两个属性值 从0%-100%中取值
                    50%为物件的X或Y方向坐标上的中点位置

        长整型值:
            duration  属性为动画持续时间
            说明:   时间以毫秒为单位

        布尔型值:
            fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
-->

set设置多种动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000" android:fillAfter="true">

  <alpha android:fromAlpha="0.0" android:toAlpha="1.0"/>

  <scale  android:fromXScale="0.0" android:toXScale="1.4" android:fromYScale="0.0" android:toYScale="1.4" android:pivotX="50%" android:pivotY="50%"/>

  <rotate  android:fromDegrees="0" android:toDegrees="720" android:pivotX="50%" android:pivotY="50%"/>

</set>

<!-- 透明度控制动画效果 alpha 浮点型值: fromAlpha 属性为动画起始时透明度 toAlpha 属性为动画结束时透明度 说明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 -->

translate 位置转移动画效果

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="-80" android:fromYDelta="0" android:toYDelta="-80" android:duration="2000" android:fillBefore="true">
</translate>
<!-- translate 位置转移动画效果 整型值: fromXDelta 属性为动画起始时 X坐标上的位置 toXDelta 属性为动画结束时 X坐标上的位置 fromYDelta 属性为动画起始时 Y坐标上的位置 toYDelta 属性为动画结束时 Y坐标上的位置 注意: 没有指定fromXType toXType fromYType toYType 时候, 默认是以自己为相对参照物 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 -->
<!-- AnimationSet: http://developer.android.com/reference/android/view/animation/AnimationSet.html-->

源码下载

你可能感兴趣的:(欢迎使用CSDN-markdown编辑器)