official site:http://facebook.github.io/rebound

github : https://github.com/facebook/rebound

Rebound是facebook推出的一个弹性动画库,可以让动画看起来真实自然,像真实世界的物理运动,带有力的效果,使用的参数则是facebook的origami中使用的。

官网上有一个简单的JS版本来做demo,如果说到evernote、LinkedIn、flow等应用也在使用这个动画库,是不是会显得更厉害些呢。

Spring spring = mSpringSystem.createSpring().setSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(86, 7)).addListener(new SimpleSpringListener() {@Overridepublic void onSpringUpdate(Spring spring) { float value = (float) spring.getCurrentValue(); ViewHelper.setTranslationX(view, value); } });

上面的短短代码就可以给一个view加上自然的从左向右进入回弹效果。

类似地

Spring spring = mSpringSystem.createSpring().setSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(86, 7)).addListener(new SimpleSpringListener() {@Overridepublic void onSpringUpdate(Spring spring) { float value = (float) spring.getCurrentValue(); float scale = 1f - value; ViewHelper.setScaleX(mItemIconViewList.get(index), scale); ViewHelper.setScaleY(mItemIconViewList.get(index), scale); } });

就可以给view加上一个从小变大然后略有回弹的效果。

如果想要做很多view的连锁动画怎么办?Rebound也提供了SpringChain这个接口。

for (int i = 0; i < viewCount; i++) {final View view = new View(context); view.setLayoutParams( new TableLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f)); mSpringChain.addSpring(new SimpleSpringListener() { @Override public void onSpringUpdate(Spring spring) { float value = (float) spring.getCurrentValue(); view.setTranslationX(value); } }); int color = (Integer) evaluator.evaluate((float) i / (float) viewCount, startColor, endColor); view.setBackgroundColor(color); view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return handleRowTouch(v, event); } }); mViews.add(view); rootView.addView(view); } getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { getViewTreeObserver().removeOnGlobalLayoutListener(this); List<Spring> springs = mSpringChain.getAllSprings(); for (int i = 0; i < springs.size(); i++) { springs.get(i).setCurrentValue(-mViews.get(i).getWidth()); } postDelayed(new Runnable() { @Override public void run() { mSpringChain .setControlSpringIndex(0) .getControlSpring() .setEndValue(0); } }, 500); } });

就做出了一个view和view的牵引位移动画效果。

本文转自 一点点征服   博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/7079727.html,如需转载请自行联系原作者

让动画不再僵硬:Facebook Rebound Android动画库介绍相关推荐

  1. Facebook Rebound 弹性动画库 源码分析

    Rebound源码分析 让动画不再僵硬:Facebook Rebound Android动画库介绍一文中介绍了rebound这个库. 对于想体验一下rebound的效果,又懒得clone和编译代码的, ...

  2. Android基础-Facebook Rebound 弹性动画库 源码分析

    Facebook Rebound 弹性动画库 源码分析 设计的时候老是闲动画太生硬,于是找到了这个弹性动画.这个弹性动画是facebook开源的,Rebound项目地址:https://github. ...

  3. android 弹簧震动动画,Android-Rebound(弹簧系统-让动画不再僵硬)的简单使用与源码分析...

    综述:Rebound 通过胡克定律,实现的一个类似"弹簧"动画效果的第三方工具包. 单独使用 Spring spring = SpringSystem.create().creat ...

  4. android 动画引擎,一个使用openGL渲染的炫丽Android动画库

    这是一个 android 动画特效库 可以实现各种炫酷动画. github地址: ht t ps:// gith  u b.co m/g pl ib s/an dro id- ma gic-s ur ...

  5. 腾讯开源Android动画库,腾讯开源的酷炫动画播放解决方案Vap初体验

    同事在群里有提到Vap,播放炫酷动画的,可以让动画背景透明,就去了解了下. 也可以看下面的视频播放效果(不动点击播放): 原本以为是直接弄个视频就可以播放. 后来查看官方案例,为了让动画背景有半透明特 ...

  6. facebook的Android调试工具Stetho介绍

    http://www.androidcn.org/topic/552fabaa8ca8a1e07687e999#0-tsina-1-39947-397232819ff9a47a7b7e80a40613 ...

  7. python做动画的库_用matplotlib动画库制作等分法动画

    经过反复试验,我找到了解决问题的办法.在import matplotlib.pyplot as plt from matplotlib import animation import numpy as ...

  8. 【轮子】发现一个效果丰富酷炫的Android动画库

    没有什么比发现一个好轮子更让人开心的了. 这个库分分钟提高交互体验 :AndroidViewAnimations 一张图说明一切 配置和使用也相当简单 GitHub地址 转载于:https://www ...

  9. Android基于Facebook Rebound的动画效果框架Backboard demo (非常炫酷)

    2016-03-21 12:06 1256人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一个基于Facebook Rebound的动效框架Ba ...

最新文章

  1. 计算两个字符串之间是否包含的简单方法
  2. SpringBoot系列: SpringBoot 启动慢的问题
  3. 报告:2019-2025年,全球数据中心年复合增长率将超过7%
  4. CUDA学习笔记之程序优化
  5. 5/5 MySQL入门总结:其它操作
  6. Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
  7. jQuery ajax 和 普通js ajax 笔记
  8. android aar保存图片文件异常_我去!合并AAR时踩坑了!
  9. 该服务器支持最多2100个参数,Mybatis批量查询拼装参数超长的解决办法
  10. Uva 10305 - Ordering Tasks
  11. 上海区块链会议演讲ppt_如何确保会议高质量的演讲
  12. 类文件Android 代码混淆 以及 反编译 的实现类文件
  13. 服务器更新维护尚未全部完成,03月07日全部服务器更新维护公告
  14. ROS dst-nat端口映射限制访问映射IP
  15. 学乐高和机器人编程区别
  16. 如何更改Excel2016中折线图的连接点颜色和样式?
  17. 2020计算机保研心得(上岸中科大)
  18. Vulkan教程 - 08 着色器及编译SPIR-V
  19. 华为设备的安全配置console及telnet
  20. 移动通信第六章,多址技术

热门文章

  1. CCNU ACM 2016夏季集训·最长递增子序列(LIS)
  2. Kafka 是如何建模数据的?
  3. 2.Matlab画好图后,如何插入到word里面去
  4. (六)立创EDA之原理图设计示例
  5. PowerDesigner导出表结构到Excel表
  6. 【毕业设计】基于的单片机的移动硬盘设计与实现 - stm32 嵌入式 物联网
  7. 【附源码例】快捷指令实现调出iOS隐藏应用程序-原理解析
  8. Python学习之线性图
  9. 如何分析个股基本面_如何分析个股基本面?个股基本面分析方法
  10. IoTeX 对话 浙江大学Bithacks:当物联网遇上区块链