先看段关于android中动画配置文件的伪代码:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"     android:interpolator="@android:anim/accelerate_interpolator">    <alpha />    <rotate />    <scale/>    <translate/></set>
现在来慢慢理清楚:

xmlns:android="http://schemas.android.com/apk/res/android" 
申明xml的命名空间,xmlns(xml namespace的缩写),而冒号后面是给这个引用起的别名schemas是xml约束文件,规定了xml中有哪些元素(标签),元素有哪些属性以及各元素的关系,当申明了命名空间和约束文件后,就可以在改xml文档中引用资源,存放在apk/res/android下的资源都可以访问,比如在写<rotate/>中的属性时,用"android:"这样来引用的,当然也可以自己定义自己的资源文件(比如test),就可以用"test:"这样来引用。

android:interpolator="@android:anim/decelerate_interpolator"
首先明白interpolator是定义一个动画的变化率,这使得基本的动画效果(scale、alpha、translate、rotate)得以加速、减速以及重复等等,用通俗的话来讲就是动画的进度使用Interpolator来控制,控制效果有匀速、正加速、负加速、无规则变速等等,Interpolator接口只有一个抽象方法getInterpolation(float input),由此SDK中扩展了另外几个类。

常用Interpolator类:
AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。

androidSDK中动画分为两种,
一种是Tween Animation(渐变动画):通过对场景里的对象不断地做图像变换处理,如平移、缩放、旋转等。

一种是Frame Animation(帧动画):顺序播放实现做好的图像。


android中的四种动画

四种动画是android提供的基本动画类型,在配置文件中,他们都可以放在<set></set>标签中,那么怎样建立一个动画效果呢。看下面的xml动画配置文件:
第一步:在res目录下建立一个名字为anim的文件夹,并且在这个文件夹下建立一个新的xml文件,文件名字自拟。
第二步:添加命名空间,即写set标签,并且指定动画的控制器(可以不写)。
第三步:开始制定和设置动画类型及动画初值。

请注意当有rotate标签和translate标签一起使用时,请将rotate标签放在translate之前。

各个标签的属性含义

set标签属性的含义:
android:shareInterpolator—— 是否共享插入器,共享时,四个子节点都用一个插入器
android:interpolator ——指定一个动画的插入器,使用系统资源
android:fillEnabled ——当设置为true时,fillAfter和fillBefroe将会都为true,此时会忽略fillBefore和fillAfter两种属性
android:fillAfter ——该动画转化是否在动画结束后被应用 boolean
android:fillBefore ——该动画转化是否在动画开始前被应用 boolean
android:repeatMode—— 重复模式 restart 或者 reverse
android:repeatCount ——重复次数 integer
android:duration ——动画持续时间 integer
android:startOffset—— 动画时间间隔 long
android:zAdjustment ——定义动画zorder的变换normal 或者 top 或者 bottom

scale标签属性的含义:
android:interpolator——同set属性
android:fromXScale——动画开始时,x坐标上的延伸尺寸(float 0.0表示收缩到最小,1.0表示无收缩)
android:toXScale——同理
android:fromYScale——同理
android:toYScale——同理
android:duration——动画持续的时间(int 单位毫秒)
android:pivotX——动画的开始时相对于物件的x位置(0%~100%)
android:pivotY——同理
android:fillEnabled ——同set属性
android:fillBefore——同set属性
android:fillBefore——同set属性
android:fillAfter——同set属性
android:startOffset——同set属性
android:repeatCount——同set属性
android:repeatMode——同set属性

rotate标签属性的含义:
android:fromDegrees——动画开始时的角度(有正负号之分)
android:toDegrees——动画结束时的角度(有正负号之分)
android:pivotX——可以理解为旋转的中心(0%~100%)
android:pivotY——同理
android:duration——动画持续的时间(int 单位毫秒)

alpha标签属性的含义:
android:toAlpha ——动画结束时的透明度(float 0表示完全透明 1表示完全不透明)
android:duration——动画持续的时间(int 单位毫秒)
android:fromAlpha ——动画开始时的透明度(float 0表示完全透明 1表示完全不透明)

translate标签属性的含义:
android:fromXDelta ——动画开始时,X坐标上的位置 integer 默认以自己为参照物
android:toXDelta ——动画结束时,X坐标上的位置 integer 默认以自己为参照物
android:fromYDelta ——动画开始时,Y坐标上的位置 integer 默认以自己为参照物
android:toYDelta ——动画结束时,Y坐标上的位置 integer 默认以自己为参照物

当然,scale,rotate,alpha,translate中的属性不止这些,还有些和set标签一样,就没有重复写。到这里android动画最简单的知识就完了。接下来还会继续学习,继续总结。



更多相关文章

  1. 设置showAsAction="always"无效的问题
  2. Androidx和Android(安卓)support库共存问题解决
  3. 深入理解 Android(安卓)组件的 exported 属性
  4. android 仿iphoneX上滑退出应用动画(三)
  5. android之Application
  6. Android(安卓)阿拉伯语言适配
  7. Android之SlidingMenu属性详解
  8. 添加自定义风格的titleBar栏
  9. 2013.12.04 (7)——— android SlidingMenu之CustomAnimation

随机推荐

  1. 如何在5.0上实现button的Ripple(水波效果
  2. 关于TextView的android:ellipsize="end"
  3. android surfaceview实现简易抓球游戏
  4. Android(安卓)UI设计小知识——Nine-Patc
  5. 注册广播的两种方式:动态广播和静态广播的
  6. Android开发:Handler异步通信机制全面解析
  7. 盘点android中常见的设计模式(九) -- Adapt
  8. Android之Android(安卓)studio如何解决Mu
  9. 理解Android的handler机制--从应用到原理
  10. 从零开始--系统深入学习android(实践-让我