有木有厌烦生硬的动画效果,想不想让你的动画变得圆滑且

欢迎收看本期的走进科学。。。

停,停,别打了,(。﹏。*) 我错了……

我们要达到的效果:

先来回顾一下普通动画的用法吧。

* 缩放动画

 ScaleAnimation sa = new ScaleAnimation(0.1f,1f,0.1f,1f);
sa.setDuration(1000);
tx.startAnimation(sa);

相信大家都已经会了。这个动画的效果是这样的:



看起来就只是线性变化啊!!!! 好生硬啊!!!!! 有没有一种方法可以让动画的变化不是线性的呢,看起来有弹性。

废话。当然有啊…不然我还在这里叽里呱啦什么捏。。那就是插值器Interpolator。

看标题就知道这不是一个具体讲插值器的博文,而是讲秘籍。。。到底是啥呢。。其实就是一个可以在线预览插值器效果的网站啦。。

插值器预览

这个网站可以预览各种插值器的效果,并且内置了几种常见的效果:

比如这个spring效果,他根据这条曲线进行插值的。。 那么我们对代码进行一下改造,应用到安卓上。

转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50667025

新建一个Interpolator类,实现getInterpolation()方法

为动画集添加动画效果

//由网站改造的插值器
public class MyInterpolator implements Interpolator {
@Override
//返回为float值 也就是实时的值
public float getInterpolation(float input) {
float factor = 0.4f; return (float) (Math.pow(2, -10 * input) * Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1);
} float bounce(float t) {
return t * t * 8;
} }
public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tx = (TextView) findViewById(R.id.txt);
tx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ScaleAnimation sa = new ScaleAnimation(0.1f,1f,0.1f,1f);
sa.setDuration(1000);
RotateAnimation ra = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
ra.setDuration(1000); AnimationSet as = new AnimationSet(true);
as.setInterpolator(new MyInterpolator());
// as.addAnimation(ra);
as.addAnimation(sa);
tx.startAnimation(as);
}
});
}
}

此时缩放的动画效果如下:

这个…… 呃~~ -__-” 这个helloworld在颤抖。。有点邪恶(懂得面壁五分钟!)。。

改成旋转动画试试:

呃呃呃。。确实好看多了。很平滑的感觉

说了半天其实就是:你可以把自己写好的插值器或者在网上找的在这个网站上预览,然后进行微调,最后达到满意的效果。

如果本文对你有帮助就点个顶吧~

让你的动画不再生硬 Android插值器Interpolator使用秘籍的更多相关文章

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

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

  2. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  3. [原][粒子特效][spark]插值器interpolator

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html 插值器是体现粒子生命周期变化的功能 group使用到插值器的方式: 可以看到 ...

  4. 让动画不再僵硬:Facebook Rebound Android动画库介绍

    introduction official site:http://facebook.github.io/reboundgithub : https://github.com/facebook/reb ...

  5. Android动画之旅-Android动画基本介绍

    在上一篇博客中.我们简单了解了在Android中的动画特效.小伙伴们是不是意犹未尽呀. 还没有看的猛戳这里:Android动画之旅一开篇动画简单介绍 本篇博客.将和大家一起来分析Android中的四大 ...

  6. Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中 ...

  7. android.view.animation(2) - 插值器Interpolator

    public interface Interpolator implements TimeInterpolator android.view.animation.Interpolator Known ...

  8. Android动画学习(一)——Android动画系统框架简介

    2015-11-09补充:Drawable Animation极有可能是Frame Animation 这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其 ...

  9. android之interpolator的用法详解

    Android:interpolator Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repea ...

随机推荐

  1. TCP发送源码学习(2)--tcp_write_xmit

    一.tcp_write_xmit()将发送队列上的SBK发送出去,返回值为0表示发送成功.函数执行过程如下:1.检测拥塞窗口的大小.2.检测当前报文是否完全处在发送窗口内.3.检测报文是否使用nagl ...

  2. Programming In Scala笔记-第十一章、Scala中的类继承关系

    本章主要从整体层面了解Scala中的类层级关系. 一.Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类.在Scala中所有类的最终父类为A ...

  3. AJAX编程实践

    ---------------------------------------------------------------------------------------------------- ...

  4. Spark运行架构

    http://blog.csdn.net/pipisorry/article/details/52366288 1. Spark运行架构 1.1 术语定义 lApplication:Spark App ...

  5. intent flags标记

    Intent Flag介绍 FLAG_ACTIVITY_BROUGHT_TO_FRONT  这个标志一般不是由程序代码设置的,如在launchMode中设置singleTask模式时系统帮你设定. F ...

  6. FORM打开网页链接

     DECLARE l_server_url VARCHAR2(100); l_parameters VARCHAR2(200); BEGIN fnd_profile.get('APPS_WEB_A ...

  7. 为什么不要在viewDidLoad方法中设置开始监听键盘通知

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一个普遍的错误是,程序猿(媛)试图在view controll ...

  8. 安卓自定义日期控件(仿QQ,IOS7)

    还记得上篇:高大上的安卓日期时间选择器,本篇是根据上篇修改而来,先看下qq中日期选择的效果: 鉴于目前还没有相似的开源日期控件,因此本人花费了一些时间修改了下之前的日期控件,效果如图: 虽说相似度不是 ...

  9. 1. React介绍 React开发环境搭建 React第一个程序

    什么是 React         React 是 Facebook 发布的 JavaScript 库,以其高性能和独特的设计理念受到了广泛关注. React的开发背景         Faceboo ...

  10. Shell在大数据时代的魅力:从一道百度大数据面试题想到的点滴

    对于在Linux下开发的同学来说,Shell可以说是一种基本功. 对于运维的同学来说,Shell可以说是一种必备的技能,而且应该要非常熟练的书写Shell.对于Release Team,软件配置管理的 ...