Android动画的两种:Frame帧动画、Tween动画(位移动画)【实现:存放目录res/anim

Tween动画:(位移、缩放、旋转):通过对场景里的对象不断做图像变换。

四种效果Alpha、Scale、Translate、Rotate[蓝色为xml中属性的解释]

    1. Alpha:渐变透明度
    fromAlpha   动画开始时候透明度
    toAlpha为    动画结束时候透明度
    说明: 0.0表示完全透明; 1.0表示完全不透明
    duration     属性为动画持续时间
    说明:   时间以毫秒为单位1000=1s
    1. Scale:伸缩
    fromXScale  为动画起始时 X坐标上的伸缩尺寸
    toXScale    为动画结束时 X坐标上的伸缩尺寸
    fromYScale  为动画起始时Y坐标上的伸缩尺寸
    toYScale    为动画结束时Y坐标上的伸缩尺寸
    说明:以上四种属性值   
    0.0表示收缩到没有 ;1.0表示正常无伸缩
    【值小于1.0表示收缩 ;值大于1.0表示放大】
    pivotX:     中心点X坐标位置
    pivotY:     中心点Y坐标位置
    duration     属性为动画持续时间
    说明:   时间以毫秒为单位
    1. Translate:画面转换位置移动动画效果
    • 注意:fromXTyep to Xtype  fromYType to Ytype默认是以自己为相对参照物
    整型值:(三种值:100%p,100%)
    fromXDelta 属性为动画起始时 X坐标上的位置
    toXDelta     属性为动画结束时 X坐标上的位置
    fromYDelta 属性为动画起始时 Y坐标上的位置
    toYDelta     属性为动画结束时 Y坐标上的位置
    长整型值:
    duration     属性为动画持续时间
    说明:   时间以毫秒为单位
    android:fillBefore="false"
    android:fillAfter="true"  是否保留动画【变换】后,结束后的位置状态

    (向上为-数,往下是+数)

    1. Rotate:画面转移旋转动画效果

    属性:interpolator 指定一个动画的插入器

    有三种动画插入器:

    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  属性为动画持续时间

    说明:时间以毫秒为单位

    Java中绑定TweenAnimation以及实现动画效果

    private ImageView ivAbout;
    private Animation aboutAnimation;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.animation_tween_activity);
        initView();
        startAlphaScaleAnimation();
    }
    private void initView() {
        ivAbout=(ImageView)super.findViewById(R.id.ivAbout);
    }
    /**启动移动动画的方法*/
    private void startTransAnimation(){
        aboutAnimation=AnimationUtils.loadAnimation(this, R.anim.translate_about);//获得动画效果
    aboutAnimation.setFillAfter(true);//设置保留动画结果的属性
        ivAbout.startAnimation(aboutAnimation);//将图片关联且启动动画
    }

     

    Activity切换动画

    1. 动画xml
    2. 在startAcitvity和finish方法后调用overridePending Transition方法
    super.overridePendingTransition(enterAnim, exitAnim)

    Frame帧动画

    1. drawable新建xml文件è选择animation-list,设置动态资源、时间、是否循环属性。

    <!--oneshot="false"循环播放  -->

    1. 在Activity.java代码中进行资源绑定实现动画效果。
    (1)animationlist_frame.xml 配置
    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false">
        <item android:drawable="@drawable/anim_wip_bk_fog" android:duration="5000"></item>
        <item android:drawable="@drawable/anim_wip_bk_dust" android:duration="5000"></item>
    </animation-list>
    (2)java代码的实现
    private RelativeLayout root;
    private AnimationDrawable drawable;
    private void initView() {
    root=(RelativeLayout)super.findViewById(R.id.root);
           //取得动画效果的资源设置为layout root的背景
    root.setBackgroundResource(R.drawable.animationlist_frame);
           //将root的背景资源设置为逐帧动画的资源文件
    drawable=(AnimationDrawable)root.getBackground();
    }
    private void startAnimation() {
        drawable.start();//开始帧动画
    }
    @Override
    protected void onResume() {
        super.onResume();
        startAnimation();
    }
    @Override
    protected void onStop() {      
        super.onStop();
        drawable.stop();//停止帧动画
    }