本文内容是本人阅读诸多前辈的学习心得后整理的,若有雷同,请见谅

Android 动画 分类:帧动画,补间动画,属性动画  。

1.帧动画

  将一张张单独的图片连贯的进行播放,从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式。

2.补间动画

  补间动画又可以分为四种形式,分别是 alpha(淡入淡出),translate(位移),scale(缩放大小),rotate(旋转)。补间动画的实现,一般会采用xml 文件的形式;代码会更容易书写和阅读,同时也更容易复用。

用法:

  xml的标签alpha ,tanslate,scale,rotate .如果动画效果比较多,用set标签累加

  代码加载xml:  Animation animation = AnimationUtils.loadAnimation(this, R.anim.tween_1);

  代码写:直接  anim  = new RotateAnimation(-deValue, deValue, Animation.RELATIVE_TO_SELF, pxValue, Animation.RELATIVE_TO_SELF, pyValue);

  Android3.0 增加了 View.setAnimation(Animation anim)

 缺点:首先就是拓展性太差,只能写移动、缩放、旋转、渐变四种动画,以及这四种动画的组合,不支持自定义View的拓展。其次一个致命的缺点就是动画只是屏幕绘制上的动画,控件的属性并没有改变,一个经典的问题就是一个Button从一个地方移动到另一个地方,点击事件还是在原来的地方

2.属性动画(Android3.0推出)

  实质:通过不断对值进行改变,并不断将该值赋给对象的属性,从而实现该对象在该属性上的动画效果。除了能够实现补间动画实现的效果,还可做其他效果,扩展性强

        
        ObjectAnimation 可以直接显示 alpha,translate,scale,rotate4中效果。
        

或者XML写法:

    <animator xmlns:android="http://schemas.android.com/apk/res/android"
         // 设置属性同上
          android:valueFrom="0"
          android:valueTo="100"
        android:valueType="intType"/> //intType 或者 floatType

    步骤3:在Java代码中启动动画

    Animator animator = AnimatorInflater.loadAnimator(context, R.animator.set_animation);
    // 载入XML动画
    animator.setTarget(view);
    // 设置动画对象
    animator.start();

  下面我们介绍一TimeInterpolator 和  TypeEvaluator 

  TimeInterpolator (Api25)动画的 变化速度:比如迅速,先慢后加速,或加速后减速等。(Android3.0 新增TimeInterpolator 与 TypeEvaluator 作用于ValueAnimator,补间动画也可以用)

       TypeEvalutor: 负责改变动画最终的属性值(属性动画,可以修改View的属性值,比如颜色,点位置)

————————————————————————

 

AnimatorSet 具体使用

转载于:https://www.cnblogs.com/nuomiMA/p/9486206.html

最新文章

  1. canvas钟表
  2. Google C++单元测试框架GoogleTest---TestFixture使用
  3. Codeforces #261 D
  4. debug和release之间的时间优化问题
  5. [Leetcode][JAVA] Recover Binary Search Tree (Morris Inorder Traversal)
  6. 马踏飞燕——奔跑在Docker上的Spark
  7. Jmeter中的几个重要测试指标释义
  8. 【HTML/XML 11】XML和HTML的混合使用
  9. Little-endian的一个好处:在变量指针转换的时候地址保持不变
  10. Ios 从无到有项目 MVVM模式(两)
  11. Node Sass could not find a binding for your current environment 解决办法
  12. java编程基础知识及常见例题
  13. Android--Task和BackStack高级
  14. 第一册:lesson sixty three。
  15. .NET 同步与异步 之 线程安全的集合 (十一)
  16. 使用pygal_maps_world展示世界地图
  17. 【Unity笔记】Terrain地形制作坍塌/深坑
  18. VMware11 安装MAC OS X 10.9
  19. Integer.parseInt() 和 valueOf()
  20. java 项目开启mysql binlog参数后报500错误:

热门文章

  1. Array(数组)对象--&gt;lastIndexOf() 方法
  2. "着重内容"组件:&lt;strong&gt; —— 快应用组件库H-UI
  3. canal使用记录
  4. 分享一本Java并发编程的免费好书
  5. std::string构造函数
  6. loadrunner post请求
  7. AJ学IOS 之BLOCK的妙用_利用block实现链式编程
  8. PLSQL Developer 中文乱码踩坑记
  9. 在VS Code下配置Julia
  10. Golang——详解Go语言代码规范