让动画不再僵硬:Facebook Rebound Android动画库介绍
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动画库介绍相关推荐
- Facebook Rebound 弹性动画库 源码分析
Rebound源码分析 让动画不再僵硬:Facebook Rebound Android动画库介绍一文中介绍了rebound这个库. 对于想体验一下rebound的效果,又懒得clone和编译代码的, ...
- Android基础-Facebook Rebound 弹性动画库 源码分析
Facebook Rebound 弹性动画库 源码分析 设计的时候老是闲动画太生硬,于是找到了这个弹性动画.这个弹性动画是facebook开源的,Rebound项目地址:https://github. ...
- android 弹簧震动动画,Android-Rebound(弹簧系统-让动画不再僵硬)的简单使用与源码分析...
综述:Rebound 通过胡克定律,实现的一个类似"弹簧"动画效果的第三方工具包. 单独使用 Spring spring = SpringSystem.create().creat ...
- android 动画引擎,一个使用openGL渲染的炫丽Android动画库
这是一个 android 动画特效库 可以实现各种炫酷动画. github地址: ht t ps:// gith u b.co m/g pl ib s/an dro id- ma gic-s ur ...
- 腾讯开源Android动画库,腾讯开源的酷炫动画播放解决方案Vap初体验
同事在群里有提到Vap,播放炫酷动画的,可以让动画背景透明,就去了解了下. 也可以看下面的视频播放效果(不动点击播放): 原本以为是直接弄个视频就可以播放. 后来查看官方案例,为了让动画背景有半透明特 ...
- facebook的Android调试工具Stetho介绍
http://www.androidcn.org/topic/552fabaa8ca8a1e07687e999#0-tsina-1-39947-397232819ff9a47a7b7e80a40613 ...
- python做动画的库_用matplotlib动画库制作等分法动画
经过反复试验,我找到了解决问题的办法.在import matplotlib.pyplot as plt from matplotlib import animation import numpy as ...
- 【轮子】发现一个效果丰富酷炫的Android动画库
没有什么比发现一个好轮子更让人开心的了. 这个库分分钟提高交互体验 :AndroidViewAnimations 一张图说明一切 配置和使用也相当简单 GitHub地址 转载于:https://www ...
- Android基于Facebook Rebound的动画效果框架Backboard demo (非常炫酷)
2016-03-21 12:06 1256人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一个基于Facebook Rebound的动效框架Ba ...
最新文章
- 计算两个字符串之间是否包含的简单方法
- SpringBoot系列: SpringBoot 启动慢的问题
- 报告:2019-2025年,全球数据中心年复合增长率将超过7%
- CUDA学习笔记之程序优化
- 5/5 MySQL入门总结:其它操作
- Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
- jQuery ajax 和 普通js ajax 笔记
- android aar保存图片文件异常_我去!合并AAR时踩坑了!
- 该服务器支持最多2100个参数,Mybatis批量查询拼装参数超长的解决办法
- Uva 10305 - Ordering Tasks
- 上海区块链会议演讲ppt_如何确保会议高质量的演讲
- 类文件Android 代码混淆 以及 反编译 的实现类文件
- 服务器更新维护尚未全部完成,03月07日全部服务器更新维护公告
- ROS dst-nat端口映射限制访问映射IP
- 学乐高和机器人编程区别
- 如何更改Excel2016中折线图的连接点颜色和样式?
- 2020计算机保研心得(上岸中科大)
- Vulkan教程 - 08 着色器及编译SPIR-V
- 华为设备的安全配置console及telnet
- 移动通信第六章,多址技术