Android Material Design动画 Curved motion | 曲线运动
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 | 曲线运动相关推荐
- Android Material Design动画
最近在看一些关于Material Design的东西,还记得在博客<你所不知道的Activity转场动画--ActivityOptions>中,我们介绍了一种优雅的activity过度动画 ...
- android夜间模式揭露动画,Android Material Design系列之夜间模式
今天我们讲讲夜间模式的实现,这篇文章的名字应该叫:<Android Material Design系列之夜间模式>.在Android 5.0 之后,实现夜间模式并非很难了,支持的5.0库提 ...
- Android Material Design按钮样式
本文翻译自:Android Material Design Button Styles I'm confused on button styles for material design. 我对材质设 ...
- Android Material Design 系列之 BottomNavigationView + ViewPager + Fragment + BadgeView 开发详解
前言 BottomNavigationView 是 Material Design 提供的一个标准底部导航栏的实现,可以轻松的实现导航栏菜单之间的切换与浏览.底部导航使用户更方便的查看和切换最高层级的 ...
- 视频教程-Android Material Design 新控件-Android
Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...
- Android Material Design Icon Genenerator 插件为个人开发者提供 Icon 图标大全
前言 如果你作为个人开发者,没有美工小姐姐的情况下,项目中的图标 icon 很是苦恼.之前用过阿里巴巴图标库 Iconfont,后来发现 Android studio 中有一个很牛逼的 icon 插件 ...
- Android Material Design :LinearLayoutCompat添加分割线divider
Android Material Design :LinearLayoutCompat添加分割线divider Android Material Design 扩展支持包中的LinearLayo ...
- Android Material Design TabLayout属性app:tabMode和app: tabGravity
Android Material Design TabLayout属性app:tabMode和app: tabGravity Android Material Design 中的TabLayout有两 ...
- Android Material Design按钮样式设计
Today we'll dive deep into Android Buttons in Material Design and develop an application that showca ...
最新文章
- 【linux】route使用小结
- 第十四周项目一-排序函数模版
- 浅谈工程师的调试法宝(5) -JScope的应用_MCU
- Unity_UIWidgets学习笔记03_组件_Container
- 剖析《最后生还者 第二部》叙事系统的成就与败笔(上)
- matlab球心投影,球心投影
- 服务器RAID技术基础
- subline text3设置中文亲测
- html5白话解释,HTML5这个词到底是什么意思?
- c++ 弧形面如何逆时针排序_环形导轨的滑座如何通过弧形段?
- Mac 终端运行jar文件
- 创建win10介质进度为0_win10介质创建工具(media creation tool)下载_win10介质创建工具(media creation tool)官方下载-太平洋下载中心...
- 用友政务U8补丁包下载地址
- 关于计算机的想象类作文,想象类作文范文
- 饭饭科普47 — 什么是区块链
- dpdk 驱动移植叩开 kni 模块那些黑暗的角落
- 智能的未来关键在于发现新的逻辑体系
- 教师计算机招聘笔试考什么内容是什么意思,大学计算机教师招聘面试问题和笔试题16套...
- 基于WPF的桌面宠物开发(一) :WPF简介+环境搭建+简单界面
- MySQL中dd::columns表结构转table过程以及应用
热门文章
- gensim简单使用
- vue自定义插件 封装一个类似 element 中 message 消息提示框的插件
- 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
- 页面停留长时间不操作,一定时间退出系统
- java为PDF盖(签)电子签章--位置定位
- 适合货架、机械、零件等实体产品公司的成品网站源码,带数据完整版本
- 基于MES系统的追溯管理功能,没你想的那么复杂
- 【无标题】如何重置密码
- Vue基础入门(2) Vue.js下载与安装
- 渭师院的计算机专业学什么课程,【三名+建设工作】渭南初级中学教师郭晓辉走进渭师院给大学生上课...