您的位置:首页 > 其它

补间动画

2015-11-21 16:30 183 查看
补间动画:(View Animation)通过对场景的对象不断进行图像变化来产生动画效果,在实现补间动画时,只要定义动画开始和结束的”关键帧”其它过度帧由系统自动计算并补齐。

位置:在res文件夹下新建一个anim文件夹,然后建立对应的文件

通用属性

属性描述
android:repeatMode
设置动画的重复方式,reverse(反向),restart重新开始
android:repeatCount
用于设置动画的重复次数 可以是数值或infinite
android:duration
用于指定动画的持续时间,单位为ms
android:interpolotor
用于控制动画的变化速度
android:fillAfter
动画完成后是否保留在动画结束的位置
android:startOffset="500"
动画在多少秒之后启动
Android:interpolotor常用属性

属性描述
@android:anim/linear_interpolator
动画一直在做匀速改变 默认
@android:anim/accelerate_interpolator
动画一在开始的地方开始较慢,然后开始加速
@android:anim/decelerate_interpolator
在动画开始的地方改变速度较快,然后开始减速
@android:anim/accelerate_decelerate_interpolato
动画在开始和结束的地方改变速度较慢,在中间的时候加速
@android:anim/cycle_interpolator
动画循环播放特定的次数,变化速度按正弦曲线改变
@android:anim/bounce_interpolator
动画结束的地方采用弹球效果
@android:anim/anticipate_overshoot_interpolator
在动画开始的地方先向后退一小步,再开始动画,到结束的地方再超出一小步,最后回到动画结束的地方
@android:anim/overshoot_interpolator
动画快速到达终点,并超出一小步最后回到动画结束的地方
@android:anim/anticipate_interpolator
在动画开始的地方先向后退一小步,再快速到达动画结束的地方

透明度渐变动画(AlphaAnimation)

xml配置使用

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromAlpha="1.0"
android:repeatCount="2"
android:repeatMode="restart"
android:toAlpha="0" >

</alpha>


特有属性

属性描述
android:fromAlpha
用于指定动画开始时的透明度,0-1之间,1表示完全不透明
android:toAlpha
用于指定动画结束时的透明度,同上
java代码使用

加载定义好了的xml文件

animation = (AlphaAnimation) AnimationUtils.loadAnimation(this, R.anim.anim_alpha);

iv_1.startAnimation(animation);


java代码完全定义

animation = new AlphaAnimation(1, 0);
animation.setDuration(2000);
animation.setRepeatCount(3);
animation.setFillBefore(true);
iv_1.startAnimation(animation);


缩放动画(scaleAnimation)

xml配置使用

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="0 "
android:pivotY="0 "
android:repeatCount="1"
android:repeatMode="reverse"
android:duration="2000"
android:toXScale="5"
android:toYScale="5" >

</scale>


特有属性

属性描述
Android:fromXScale
用于指定动画开始时水平方向上的缩放系数,值为 1.0 表示不变化
Android:toXScale
用于指定动画结束时水平方向上的缩放系数,值为 1.0 表示不变化
Android:fromYScale
用于指定动画开始时垂直方向上的缩放系数,值为 1.0 表示不变化
Android:toYScale
用于指定动画结束时垂直方向上的缩放系数,值为 1.0 表示不变化
Android:pivotX
用于指定轴心点 X 轴坐标 起点是布局的左上角
Android:pivotY
用于指定轴心点 Y 轴坐标 50%表示y轴中心点
java代码使用

加载定义好了的xml文件

animation = AnimationUtils.loadAnimation(this, R.anim.anim_scale);

iv_1.startAnimation(animation);


java代码完全定义

animation = new ScaleAnimation(1, 5, 1, 5, 0, 0);
animation.setDuration(2000);
animation.setRepeatCount(1);
animation.setRepeatMode(Animation.REVERSE);
iv_1.startAnimation(animation);


平移动画(TranslateAnimation)

xml配置使用

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2500"
android:fromXDelta="0"
android:fromYDelta="0"
android:repeatCount="1"
android:repeatMode="reverse"
android:toXDelta="300"
android:toYDelta="300" >

</translate>


特有属性

属性描述
Android:fromXDelta
用于指定动画开始时水平方向上的起始位置
Android:toXDelta
用于指定动画结束时水平方向上的起始位置
Android:fromYDelta
用于指定动画开始时垂直方向上的起始位置
Android:toYDelta
用于指定动画结束时垂直方向上的起始位置
java代码使用

加载定义好了的xml文件

animation = AnimationUtils.loadAnimation(this, R.anim.anim_translate);
iv_1.startAnimation(animation);


java代码完全定义

animation = new TranslateAnimation(0,300, 0, 300);//相对于view的位置
animation.setDuration(2000);
animation.setRepeatCount(1);
animation.setRepeatMode(Animation.REVERSE);

iv_1.startAnimation(animation);


旋转动画(RotateAnimation)

xml配置使用

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="2"
android:repeatMode="reverse"
android:interpolator="@android:anim/anticipate_overshoot_interpolator"
android:toDegrees="360" >

</rotate>

</translate>


特有属性

属性描述
Android:fromDegrees
用于指定动画开始时旋转的角度
Android:toDeggrees
用于指定动画结束时旋转的角度
Android:pivotX
用于指定轴心点 X 轴坐标
Android:pivotY
用于指定轴心点 Y 轴坐标
java代码使用

加载定义好了的xml文件

animation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate);
iv_1.startAnimation(animation);


java代码完全定义

animation = new RotateAnimation(0, 360, 0, 0);
animation.setDuration(2000);
animation.setRepeatCount(2);
animation.setRepeatMode(Animation.REVERSE);

iv_1.startAnimation(animation);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: