PathInterpolator

在v4 support library:Revision 22.1.0的时候,Google在兼容库中增加了几个新的类,用于创建更加真实的动画效果。

Added the following interpolation classes for animation:
FastOutLinearInInterpolator, FastOutSlowInInterpolator,
LinearOutSlowInInterpolator, LinearOutSlowInInterpolator,
and PathInterpolatorCompat.

从命名我们大致可以看出来,这个实际上就是新增的插值器,但实现了更加真实的动画效果,了解我之前关于插值器的文章的朋友,应该很清楚,不了解的开发者可以先看下关于插值器的介绍:模拟自然动画的精髓——https://gold.xitu.io/post/57e33e2cc4c971005f4bf6ff

PathInterpolatorCompat

其它几个Interpolator非常好理解,实际上在没有他们之前,我们也可以通过自己来计算函数值来创建这样的Interpolator,也就是类似——缓进急出、缓出急进这样的插值器效果。

那么今天我们的主角,就是——PathInterpolatorCompat,他实际上是PathInterpolator的兼容版本,可以兼容到Android的低版本设备。利用PathInterpolatorCompat,我们可以非常方便的创建二阶、三阶的贝塞尔曲线动画Interpolator。

官网镇楼

https://developer.android.com/reference/android/support/v4/view/animation/PathInterpolatorCompat.html

这个类的使用非常简单,只有一个重载的creat()方法。

Method code
create(Path path) Create an Interpolator for an arbitrary Path.
create(float controlX1, float controlY1, float controlX2, float controlY2) Create an Interpolator for a cubic Bezier curve.
create(float controlX, float controlY) Create an Interpolator for a quadratic Bezier curve.

当然,不仅仅是贝塞尔曲线,实际上只要是Path绘制的曲线,都可以作用在PathInterpolatorCompat上。

OK,有了这个工具,我们就可以很方便的使用它来创建各种插值曲线了,举个非常简单的例子:

Path path = new Path();
path.cubicTo(0.2f, 0f, 0.1f, 1f, 0.5f, 1f);
path.lineTo(1f, 1f); ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.TRANSLATION_X, 500);
animator.setInterpolator(PathInterpolatorCompat.create(path));
animator.start();

我们绘制了一个简单的三阶贝塞尔曲线,并作用到PathInterpolatorCompat设置给Animation,这样就完成了,不再需要像我们之前做的那样,通过二阶、三阶贝塞尔曲线的数学计算公式来进行计算,极大的方便了开发者。

PathInterpolator的更多相关文章

  1. pyqt官方示例

    文件夹 PATH 列表 卷序列号为 00000058 F027:7BEC C:. ├─activeqt │ └─webbrowser │ ├─icons │ └─pycache ├─animation ...

  2. 动画_ _ Android应用开发之所有动画使用详解

    转载: http://blog.csdn.net/yanbober/article/details/46481171 题外话:有段时间没有更新博客了,这篇文章也是之前写了一半一直放在草稿箱,今天抽空把 ...

  3. Android5.0新特性——全新的动画(animation)

    全新的动画 在Material Design设计中,为用户与app交互反馈他们的动作行为和提供了视觉上的连贯性.Material主题为控件和Activity的过渡提供了一些默认的动画,在android ...

  4. animation of android (1)

    android把动画的模式分为:property animation,view animation,drawable animation. view animation:给出动画的起止状态,并且通过一 ...

  5. Android 三种动画详解

    [工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.点我开始Android技术交流] 1 背景 不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让 ...

  6. Android 5.0 全新的动画

    触摸反馈 ripple 触摸反馈是指用户在触摸控件时的一种可视化交互,在Android L之前,通常是通过press色变来凸显,但是因为是瞬间变化的效果,不如动画生动. 在Android L 中定义了 ...

  7. Android View动画

    Animation TypeEvaluator View的animate方法 ValueAnimator ObjectAnimator AnimatorSet 使用xml来创建动画 animation ...

  8. Android(Lollipop/5.0) Material Design(六) 自定义动画

    官网地址:https://developer.android.com/intl/zh-tw/training/material/animations.html 动画在Material设计中,为用户与a ...

  9. Android 5.0自定义动画

    材料设计中的动画对用户的操作给予了反馈,并且在与应用交互时提供了持续的可见性.材料主题提供了一些按钮动画和活动过渡,Android 5.0允许你自定义动画并且可以创建新的动画: Touch Feedb ...

随机推荐

  1. IOS开发学习笔记012-核心语法

    1.点语法 2.成员变量的作用域 3. @property和@synthesize 4.id类型 5.构造方法 6.自定义构造方法 7.模板修改 8.Category - 分类 9.类扩展 一.点语法 ...

  2. 【Python】locust框架接口性能测试(一)

    本人工作中主要对接口与web进行性能测试,而接口测试主要为http协议接口和webservice接口,本文主要对locust框架http接口测试先进行简单介绍. 1.测试需求 对某系统登录接口进行测试 ...

  3. postgresql connection failure:SQLSTATE[08006] [7] could not connect to server: Permission denied Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?

    PHP 程序无法连接到 CentOS 上的PostgreSQL,但是在 CentOS 服务器上却能正常运行 psql, 操作如下:多次重启 PG 数据库后发现 CGI 脚本无法连接数据库,但是可以使用 ...

  4. 【homework #1】第一次作业被虐感受

    当大二暑假结束,我发现我还是没有熟练掌握一门编程语言时,我就知道苦日子要来了. 这不,才开学第三周,就已经被虐的体无完肤了.连编译课用C语言写的词法分析,都要写很久.Debug很久才能写出来,更别提大 ...

  5. POJ 3494 Largest Submatrix of All 1’s 单调队列||单调栈

    POJ 3494 Largest Submatrix of All 1’s Description Given a m-by-n (0,1)-matrix, of all its submatrice ...

  6. .Net MVC删除图片

    还在学校,菜鸟级别,接触到的只是  /// <summary> /// 根据imageID删除图片 /// </summary> /// <returns>< ...

  7. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  8. codevs1690 开关灯

    1690 开关灯 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description YYX家门前的街上有N( ...

  9. BZOJ3612 [Heoi2014]平衡 整数划分

    [Heoi2014]平衡 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 348  Solved: 273[Submit][Status][Discus ...

  10. react 当中重新渲染dom的方法

    有个upload 重复上传同名文件的需求,在网上找了很多解决方案都不好使,在react当中解决该问题其实很简单,其实无法上传同名文件 的原因是因为无法触发onChange事件,只需要刷新改dom就可以 ...