很多地方都需要用到动画,先看下文档吧。

一、两个互补的动画系统

  • LayoutAnimation:用于全局的布局动画
  • Animated:用于创建更精细的交互控制的动画(主要是这个)

二、Animated动画组件

  • 已封装动画组件

    • Animated.Image
    • Animated.ScrollView
    • Animated.Text
    • Animated.View
  • 自定义动画组件
    • 可以使用Animated.createAnimatedComponent()来封装自己的组件

三、两种类型的值

  • Animated.Value()用于单个值。
  • Animated.ValueXY()用于矢量值

注:Animated.Value可以绑定到样式或是其他属性上,也可以进行插值运算。单个Animated.Value可以用在任意多个属性上。

四、三种动画类型

  • Animated.decay()以指定的初始速度开始变化,然后变化速度越来越慢直至停下(递减)
    • velocity: 初始速度。必填。
    • deceleration: 衰减系数。默认值0.997。
    • useNativeDriver: 使用原生动画驱动。默认不启用(false)。
  • Animated.spring() 提供了一个简单的弹性模型
    • friction:控制“反弹”/过冲。默认7。
    • tension:控制速度。默认40。
    • speed:控制动画的速度。默认12。
    • bounciness:控制弹性。默认8。
    • useNativeDriver:使用原生动画驱动。默认不启用(false)。
  • Animated.timing() 随着时间变化,使value按照easing函数进行变化
    • duration:动画的持续时间(毫秒)。默认值为500。
    • easing:easing函数来定义曲线。默认值为Easing.inOut(Easing.ease)
    • delay:开始动画前的延迟时间(毫秒)。默认为0。
    • useNativeDriver:使用原生动画驱动。默认不启用(false)。

五、组合动画

  • Animated.delay() 在给定的延迟后开始动画。
  • Animated.parallel() 同时启动一些动画。
  • Animated.sequence() 按顺序启动动画,一个完成再开始下一个。
  • Animated.stagger() 一个动画数组,里面的动画有可能会同时执行(重叠),不过会以指定的延迟来开始。starts animations in order and in parallel, but with successive delays.

注:默认情况下,如果一个动画停止或中断,则组中的所有其他动画也会停止。

六、合成动画值

  • Animated.add()     将两个动画值相加计算,得出一个新的动画值
  • Animated.divide()   相除
  • Animated.modulo()   取模(取余数)
  • Animated.multiply()  相乘

七、插值

  • interpolate()

注:已知离散点,且插值函数要过每个离散点,离散点以外的就是插值(个人理解)

八、处理手势和其他事件

  • Animated.event()

--------------------------------------

没写例子,等我整明白滴(。-ω-)zzz

React Native学习——动画Animated(笔记)的更多相关文章

  1. React Native 学习笔记--进阶(二)--动画

    React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...

  2. React Native 学习-01

    React Native 学习 (学习版本 0.39) 一.环境配置 二.IDE选择 webstorm 1.webstorm配置 ①.首先是可以选择使用汉化包汉化.eu68 ②.安装插件和外部库. 由 ...

  3. react native 学习一(环境搭配和常见错误的解决)

    react native 学习一(环境搭配) 首页,按照http://reactnative.cn/docs/0.30/getting-started.html#content上的介绍,下载安装pyt ...

  4. React Native 学习资料

    React Native 学习资料 学习资料 网址 React Native中文网 https://reactnative.cn/

  5. React Native 学习(三)之 FlexBox 布局

    React Native 学习(三)之 FlexBox 布局

  6. React Native学习笔记之2

    1:如何创建一个react native工程 首先进入到指定文件夹里面,然后在终端执行react-native init ReactNativeProject :其中ReactNativeProjec ...

  7. React Native学习笔记之1

    1:运行React Native报连接错误解决 解决方式: 在终端进入项目文件里,然后执行:(cd Pods/React; npm run start) 2:组件生命周期介绍 创建阶段 1. getD ...

  8. react native 学习笔记

    假设你的机器现在还没安装任何环境. 不同的操作系统.不同的目标平台,具体的步骤也会有所不同.如果你想同时开发android和ios也没问题,只需要先选一个平台开始,另一个平台的环境搭建只是稍有不同 本 ...

  9. React Native学习(二)之View

    React Native组件解析(二)之View 0.JSX React的核心机制之一就是虚拟DOM:可以在内存中创建的虚拟DOM元素.React利用虚拟DOM来减少对实际DOM的操作从而提升性能. ...

随机推荐

  1. Spring中的注入方式

    在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<propert ...

  2. 实现响应式——Bootstrap的删格系统详解

    Bootstrap 今天和大家一起学习如今很流行的前端框架之一,Bootstrap框架. 前言 今天带大家看看Bootstrap框架,其实我呢主要还是用里面的删格系统,单单这个删格系统就比较强大了.其 ...

  3. JQuerymobile实例源代码

    首页我们先来解释一下下JQuerymobile是什么,jQuery Mobile是JQuery 框架的一个组件(而非jquery的移动版本).jQuery Mobile是一款基于HTML5的用户界面系 ...

  4. 全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存

    全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存 前言: 本文学习思路是:存在缘由   --> 存在好处 --> 定义性质 --> 具 ...

  5. ajax+分页

    <!DOCTYPE html> <html> <head lang="zh-cn"> <meta charset="UTF-8& ...

  6. Linux学习(十二)mkpasswd、su、sudo、限制root远程登录

    一.mkpasswd mkpasswd用来生成随机密码字符串.可以指定长度和特殊字符的长度: [root@ruanwenwu01 ~]# mkpasswd O7.alw5Wq [root@ruanwe ...

  7. Turn the corner

    Problem Description Mr. West bought a new car! So he is travelling around the city. One day he comes ...

  8. Python面向对象篇之元类,附Django Model核心原理

    关于元类,我写过一篇,如果你只是了解元类,看下面这一篇就足够了. Python面向对象之类的方法和属性 本篇是深度解剖,如果你觉得元类用不到,呵呵,那是因为你不了解Django. 在Python中有一 ...

  9. Hadoop部署配置文件

    为了方便大家修,我把要修改的地方标红了,找到对应文件,复制粘贴过去就可以了 注:这个是我安装的Hadoop的配置,要根据我之前发的文章配置才行, 里面有一些东西比如文件夹名称,路径不一样,稍加修改也可 ...

  10. Python基础学习参考(二):基本语法

    一.基本语法 既然是学习一门语言,它肯定有区别与其它语言的语法规则,现在就来解释一下python的语法规则是什么? 注释:通过"#"可以对python进行注释,注意是单行注释,如果 ...