Material Design动画 Curved motion | 曲线运动

在materialDesign中,动画是依赖于时间插值器和空间运动模式的。但是在Android5.0或者5.0以后的版本,用户可以自定义时间曲线和曲线运动模式

PathInterpolator

PathInterpolator类是一个新的插值器,它基于贝塞尔曲线或Path对象。这个插值器在1*1 的正方形上定义了曲线运动,以(0,0)和(1,1)点作为锚点,控制点则通过构造函数来指定,也可以使用xml文件的定义一个路径插值器

构造方法

  • PathInterpolator(Path path)

  • 创建任意Path

  • PathInterpolator(float controlX, float controlY)

  • 创建二阶贝塞尔曲线

  • PathInterpolator(float controlX1, float controlY1, float controlX2, float controlY2)

  • 创建三阶贝塞尔曲线

XML中

自定义的PathInterpolator在Res/anim下创建

  <pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"android:controlX1="0.4"android:controlY1="0"android:controlX2="1"android:controlY2="1"/>

xml文件中:controlX1,controlY1,controlX2,controlY2类似于贝塞尔曲线的控制点

在API21(5.0)中提供了三种基本的曲线运动插值器:

  • fast_out_linear_in | 快速加速并持续加速到结束
  • fast_out_slow_in | 快速加速但缓慢减速到结束
  • linear_out_slow_in | 甩向前缓慢到达最终值

还有在API11中提供的16种插值器:

  • accelerate_cubic | 加速度_立方体
  • accelerate_decelerate | 加速度_减速
  • accelerate_quad | 加速度_二次
  • accelerate_quint | 加速度_五重峰
  • anticipate | 开始向后,然后向前
  • anticipate_overshoot | 开始向后,然后向前并超过目标值,最后返回最终值
  • bounce | 到达目标值时有回弹效果并逐渐减小回弹力
  • cycle | 重复动画一个周期
  • decelerate_cubic | 减速度_立方
  • decelerate_quad | 减速度_二次
  • decelerate_quint | 减速度_五重峰
  • linear | 速度恒定
  • overshoot | 向前并超过目标值,最后返回最终值

使用方法

  • animator.setInterpolator(new AnimationUtils().loadInterpolator(this, android.R.interpolator.fast_out_linear_in));
  • animator.setInterpolator(new PathInterpolator(0.4f, 0f, 1f, 1f));

代码实现

        path = new Path();path.moveTo(view.getLeft(), view.getTop());path.lineTo(view.getLeft(), 600);animator = new ObjectAnimator().ofFloat(view, View.X, View.Y, path);animator.setInterpolator(new AnimationUtils().loadInterpolator(this, interpolator));animator.setDuration(2000);animator.start();

效果图代码比较多,想看全部代码点下面吧

完整代码点我下载GitHub

Thank you

  • 以上仅本人学习中遇到的问题,如有更多意见欢迎随时交流 issues
  • email:coderguoy@gmail.com

Android Material Design动画 Curved motion | 曲线运动相关推荐

  1. Android Material Design动画

    最近在看一些关于Material Design的东西,还记得在博客<你所不知道的Activity转场动画--ActivityOptions>中,我们介绍了一种优雅的activity过度动画 ...

  2. android夜间模式揭露动画,Android Material Design系列之夜间模式

    今天我们讲讲夜间模式的实现,这篇文章的名字应该叫:<Android Material Design系列之夜间模式>.在Android 5.0 之后,实现夜间模式并非很难了,支持的5.0库提 ...

  3. Android Material Design按钮样式

    本文翻译自:Android Material Design Button Styles I'm confused on button styles for material design. 我对材质设 ...

  4. Android Material Design 系列之 BottomNavigationView + ViewPager + Fragment + BadgeView 开发详解

    前言 BottomNavigationView 是 Material Design 提供的一个标准底部导航栏的实现,可以轻松的实现导航栏菜单之间的切换与浏览.底部导航使用户更方便的查看和切换最高层级的 ...

  5. 视频教程-Android Material Design 新控件-Android

    Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...

  6. Android Material Design Icon Genenerator 插件为个人开发者提供 Icon 图标大全

    前言 如果你作为个人开发者,没有美工小姐姐的情况下,项目中的图标 icon 很是苦恼.之前用过阿里巴巴图标库 Iconfont,后来发现 Android studio 中有一个很牛逼的 icon 插件 ...

  7. Android Material Design :LinearLayoutCompat添加分割线divider

     Android Material Design :LinearLayoutCompat添加分割线divider Android Material Design 扩展支持包中的LinearLayo ...

  8. Android Material Design TabLayout属性app:tabMode和app: tabGravity

    Android Material Design TabLayout属性app:tabMode和app: tabGravity Android Material Design 中的TabLayout有两 ...

  9. Android Material Design按钮样式设计

    Today we'll dive deep into Android Buttons in Material Design and develop an application that showca ...

最新文章

  1. 【linux】route使用小结
  2. 第十四周项目一-排序函数模版
  3. 浅谈工程师的调试法宝(5) -JScope的应用_MCU
  4. Unity_UIWidgets学习笔记03_组件_Container
  5. 剖析《最后生还者 第二部》叙事系统的成就与败笔(上)
  6. matlab球心投影,球心投影
  7. 服务器RAID技术基础
  8. subline text3设置中文亲测
  9. html5白话解释,HTML5这个词到底是什么意思?
  10. c++ 弧形面如何逆时针排序_环形导轨的滑座如何通过弧形段?
  11. Mac 终端运行jar文件
  12. 创建win10介质进度为0_win10介质创建工具(media creation tool)下载_win10介质创建工具(media creation tool)官方下载-太平洋下载中心...
  13. 用友政务U8补丁包下载地址
  14. 关于计算机的想象类作文,想象类作文范文
  15. 饭饭科普47 — 什么是区块链
  16. dpdk 驱动移植叩开 kni 模块那些黑暗的角落
  17. 智能的未来关键在于发现新的逻辑体系
  18. 教师计算机招聘笔试考什么内容是什么意思,大学计算机教师招聘面试问题和笔试题16套...
  19. 基于WPF的桌面宠物开发(一) :WPF简介+环境搭建+简单界面
  20. MySQL中dd::columns表结构转table过程以及应用

热门文章

  1. gensim简单使用
  2. vue自定义插件 封装一个类似 element 中 message 消息提示框的插件
  3. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
  4. 页面停留长时间不操作,一定时间退出系统
  5. java为PDF盖(签)电子签章--位置定位
  6. 适合货架、机械、零件等实体产品公司的成品网站源码,带数据完整版本
  7. 基于MES系统的追溯管理功能,没你想的那么复杂
  8. 【无标题】如何重置密码
  9. Vue基础入门(2) Vue.js下载与安装
  10. 渭师院的计算机专业学什么课程,【三名+建设工作】渭南初级中学教师郭晓辉走进渭师院给大学生上课...