返回 登录
0

Android补间动画&逐帧动画

阅读2184

动画

分为两大类

逐帧动画
补间动画

补间动画

补间动画 分为四种
1.  透明度变化
2.  旋转
3.  平移
4.  放大缩小
透明度变化
步骤:1.new AlphaAnimation(fromAlpha, toAlpha)
        1.fromAlpha : 透明度的初始值 (0.0f-1.0f之间)  
        2.toAlpha:结束时的透明度的值(0.0f-1.0f之间)
    2. alpha.setDuration(3000);传入持续时间
    3. view.startAnimation: 启动一个动画

    ps:
    alpha.setFillAfter(boolean);  当你的动画执行结束时 是否还原
    alpha.setInterpolator(i) 动画的加速器 (以一个什么形式去执行动画)比如说匀速
    alpha.setRepeatCount(int count)动画重复执行的次数
    alpha.setRepeatMode 重复时以倒序  正序展示
旋转动画
 步骤一:new RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue)
参数1.    旋转开始的角度 0-360 ; 
参数2.    旋转结束时的角度0-无穷大
参数3.    X轴的坐标点(参数4) , 是基于父容器/当前VIEW 或者绝对的
参数4.    X轴的坐标点
参数5.    Y轴的坐标点(参数6) , 是基于父容器/当前VIEW 或者绝对的
参数6.    Y轴的坐标点

// Animation.ABSOLUTE 绝对
//Animation.RELATIVE_TO_SELF 基于当前VIEW,
//Animation.RELATIVE_TO_PARENT.基于父类
缩放动画
步骤1.    : new ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)
参数1.    开始时横向的宽度  0.0 - 无穷大 
    ps: 1.0是原来大小 , 0.1是十分之一大小
参数2.    结束时横向的宽度  0.0-无穷大
    ps: 1.0是原来大小 , 0.1是十分之一大小
参数3.    垂直 参照1
参数4.    垂直 参照2
参数5.    基于父容器或自己 或绝对X
参数6.    基于容器或自己的一个X坐标点
参数7.    基于父容器或自己 或绝对Y
参数8.    基于容器或自己的一个Y坐标点
平移动画
步骤1.    new TranslateAnimation(fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue)
参数1.    平移初始的X点是基于父容器或者当前VIEW
参数2.    平移初始的X点
参数3.    平移结束的X点是基于父容器或者当前VIEW
参数4.    平移结束的X点
参数5.    平移初始的Y点是基于父容器或者当前VIEW
参数6.    平移初始的Y点
参数7.    平移结束的Y点是基于父容器或者当前VIEW
参数8.    平移结束的Y点
动画集合
new AnimationSet(true);
参数1.    集合中的所有动画是否使用同一个加速器
    set.addAnimation(alpha);//添加一个透明动画
    set.addAnimation(rotate);//...
    set.addAnimation(scale);//...
    set.addAnimation(translate);//...

从anim文件夹中获取动画对象

AnimationUtils.loadAnimation(this, R.anim.translate)
//参数1. 上下文对象
//参数2.   anim文件的id
//返回值Animation
如果需要在代码中更改XML文件中的动画的属性
强转成对应的补间动画 set属性即可

帧动画

步骤1.    创建了一个drawable文件夹 , 创建xml文件 选择 AnimationList

<animation-list 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:oneshot="false"
>
<item android:drawable="@drawable/xiyangyang1" android:duration="100"></item>
<item android:drawable="@drawable/xiyangyang2" android:duration="100"></item>
</animation-list>
使用方式
1.  在布局文件中设置背景 , 在代码中获取到 , start
2.  在代码中设置背景 , 在代码中获取到 ,start



评论