Android 动画-----补间动画
2015-12-03 13:35
471 查看
Android 动画—–补间动画
ONE Goal ,ONE Passion!补间动画就是指开发者只需指定动画开始动画,动画结束等”关键帧”.而动画变化的”中间帧”由系统计算并补齐.
对于补间动画而言,开发者无需”逐一”定义动画的过程中的每一帧,只要定义动画的开始,结束的关键帧,并指定动画的持续时间就行了;
补间动画有3个必要信息 :
1,开始位置
2,结束位置
3,持续时间
一、概述
Android的animation由四种类型组成:alpha、scale、translate、rotate,
属性 | 意义 |
---|---|
alpha | 渐变透明度动画效果 |
scale | 渐变尺寸伸缩动画效果 |
translate | 画面转换位置移动动画效果 |
rotate | 画面转移旋转动画效果 |
第一:、scale标签——调节尺寸
scale标签是缩放动画,可以实现动态调控件尺寸的效果,有下面几个属性:android:fromXScale 起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;
android:toXScale 结尾的X方向上相对自身的缩放比例,浮点值;
android:fromYScale 起始的Y方向上相对自身的缩放比例,浮点值,
android:toYScale 结尾的Y方向上相对自身的缩放比例,浮点值;
android:pivotX 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,当为数值时,表示在当前View的左上角,即原点处加上50px,做为起始缩放点;如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p,那么就是表示在当前的左上角加上父控件宽度的50%做为起始点x轴坐标。(具体意义,后面会举例演示)
android:pivotY 缩放起点Y轴坐标,取值及意义跟android:pivotX一样。
<?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" />
第二: alpha标签——调节透明度
android:fromAlpha 动画开始的透明度,从0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明android:toAlpha 动画结束时的透明度,也是从0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明
<?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>
第三:rotate标签——旋转
android:fromDegrees 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数android:toDegrees 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
android:pivotX 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,具体意义已在scale标签中讲述,这里就不再重讲
android:pivotY 缩放起点Y轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p
<?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>
第四:translate标签 —— 平移
android:fromXDelta 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,具体意义已在scale标签中讲述,这里就不再重讲android:fromYDelta 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式;
android:toXDelta 结束点X轴坐标
android:toYDelta 结束点Y轴坐标
<?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>
set标签——定义动作合集
set标签自已是没有属性的,他的属性都是从Animation继承而来,但当它们用于Set标签时,就会对Set标签下的所有子控件都产生作用。属性有:(从Animation类继承的属性)
android:duration 动画持续时间,以毫秒为单位
android:fillAfter 如果设置为true,控件动画结束时,将保持动画最后时的状态
android:fillBefore 如果设置为true,控件动画结束时,还原到开始动画前的状态
android:fillEnabled 与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态
android:repeatCount 重复次数
android:repeatMode 重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重新放一遍,必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。
android:interpolator 设定插值器,其实就是指定的动作效果,比如弹跳效果等
<?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>
在activity中使用动画:
//得到定义的动画资源 Animation animation = AnimationUtils.loadAnimation(this, R.animator.scaleanim); iv = (ImageView)findViewById(R.id.iv); iv.startAnimation(scaleAnimation); //开始动画
(1)通过scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);从XML文件中获取动画
(2)利用startAnimation将动画传递给指定控件显示。
本来想转载一位大神的博客可是转载不了.只有参考一下了.非常感谢这位大神.
相关文章推荐
- 关于android图片混合示例
- 【转载】Android样式的开发:shape篇
- Android入门:使用Android自带媒体库读取MP3文件
- Android签名总结(转载)
- Android Jni调用浅述
- Android:下拉刷新,分页加载数据(服务端与客户端的的具体实现)
- android手机分辨率和设计图尺寸之间的关系
- Android源码--安装应用程序
- Android自定义ViewGroup自动分配子view位置
- Android第三方开源NiftyNotification(Android Toast替代品):动画效果生动有趣的通知
- Android源码--程序的分享、卸载、启动及详细信息
- Android 编程下 Touch 事件的分发和消费机制
- Android源码--多击事件
- Android学好Shape不再依赖美工
- 利用Android属性动画实现Banner控件
- Android编译系统入门(一)
- Android 带分隔符的EditText
- 《疯狂Android讲义》学习笔记二
- Android--屏幕适配
- Android编程之动态壁纸实例分析