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

欢迎收看本期的走进科学。。。
停,停,别打了,(。﹏。*) 我错了……

我们要达到的效果:

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

 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 {@Overrideprotected 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() {@Overridepublic 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在颤抖。。有点邪恶(懂得面壁五分钟!)。。

改成旋转动画试试:

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

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

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

转载于:https://www.cnblogs.com/muyuge/p/6333531.html

让你的动画不再生硬 Android插值器Interpolator使用秘籍相关推荐

  1. Android 动画的插值器 (Interpolator属性)

    Interpolator(插值器): 属性是设置动画的速度变化的 Interpolator(插值器)的使用方法: 两种方式:在XML 和Java代码中 方法有9中 都是内置的构造方法所以在java代码 ...

  2. Android动画学习笔记(二)——动画插值器Interpolator

    前言:上篇博客我们对补间动画的xml及代码生成做了简单的介绍,今天我们来讲讲动画的一个核心类Interpolator插值器,对于数学好的童鞋来说,学习本节内容就soeasy了!(ps:本人数学很差,都 ...

  3. android自定义动画插值器(Interpolator)

    前言 之前已经讲过动画相关的内容,没有接触过的读者可以看下笔者之前对android动画使用的整理. Android动画总结 (valueAnimator.objectAnimator.Animator ...

  4. android svg路径动画,五、Android SVG动画

    SVG的全称是Scalable Vector Graphics(可缩放矢量图形),它不会因为图像放大而失真,且占用内存小,同时搭配Path动画,能够实现一些意想不到的效果. Android中的SVG图 ...

  5. android+下落+动画,完美起航-Android面试题之动画+事件处理篇

    前言 提示:秋招在即,计蒙准备在国庆假期结束前整理一套Android初级面试题籍,希望对大家有所帮助 提示:以下是本篇文章正文内容 动画 1.Android 中的动画有哪几类 帧动画.补间动画.属性动 ...

  6. android动画平移 加速,Android动画总结

    Android中的动画大致上分为视图动画(View Animation)和属性动画(Property Animation)两种,其中视图动画又分为补间动画(Tween Animation)和帧动画两种 ...

  7. android动画机制,动画机制-《Android群英传》

    动画分为视图动画和属性动画框架. 视图动画: 提供AlphaAnimation.RotateAnimation.TranslateAnimation.ScaleAnimation四种动画方式 提供动画 ...

  8. android 折纸动画,如何在Android中实现折纸动画

    受到iOS版的启发,在最近的项目中,我们决定在打开列表元素时实现一个类似风格的动画效果.起初,我们试图使用一个现有的实现--android-flip, 通过OpenGL渲染动画--在***的Andro ...

  9. android动画延迟执行,Android 过渡动画框架

    为了帮助视图层次内部和视图之间的过渡更加容易实现动画效果,Android 提供了 Transition 框架.这一套框架能够在视图之间提供一种或者多种动画过渡效果.过渡动画要解决的另一个主要问题就是对 ...

最新文章

  1. 程序员经常去的 14 个顶级开发者社区(转)
  2. angular5 清除定时器
  3. PaddlePaddle实现波士顿房价预测
  4. Windows 10 下 VS2017(+Clion) C/C++ 配置 OpenCV-4.4.0
  5. TypeScript里的类型合并操作符
  6. 服务器之Apache和Tomcat和Nginx的理解和对比
  7. Xor HDU - 6899
  8. SGU-169 Numbers(找规律)
  9. 中国电信5G定制网产品要点
  10. php坏处,cpu超频有什么坏处
  11. python中from import_Python中的import和from import
  12. java实现word转换pdf并批量生成水印
  13. 一加手机刷机 Kali Nethunter
  14. 7-1 求N分之一序列前N项和 (15 分)
  15. Dell G3更换机械硬盘
  16. 2020智慧树答案python程序设计_2020年智慧树Python程序设计答案章节期末答案
  17. Matlab镜像建模产生啸叫信号,基于MATLAB有噪声语音信号的处理最终稿(样例3)...
  18. 数学建模方法(2)量纲分析方法
  19. 银河麒麟操作系统基础学习笔记十三
  20. Matlab进阶绘图第4期—三维堆叠柱状图/三维堆积图

热门文章

  1. python-pygame作品之MineCraft小鸡
  2. uos应用_终极指标(UOS)应用法则
  3. 完全认识计算机网络之TCP/IP
  4. OpenJudge 7624 山区建小学
  5. 坚果云WebDav示例
  6. OSChina 周一乱弹 —— 花式遛狗法
  7. 云计算360度 微软专家纵论产业变革
  8. 量子计算黑客松大赛-量子计算编程
  9. WinRAR 被曝严重安全漏洞;苹果预计推出跨平台应用
  10. 数据分析模型 第十一章