【Android】实现一个弹簧(Spring)效果的动画
2017-09-30 20:29
519 查看
弹簧(spring)效果在开发中十分常见,效果比较轻盈活泼,但是android本身要用基本的xml去实现弹簧效果,很难做到流畅,需要自定义一个插值器(Interpolator),这里记录一下最近写的一个弹簧效果的插值器:
然后设置一下我们使用弹簧插值器去播放的动画,可以是缩放,也可以是位移,注意插值器只是控制动画的节奏,但是动画本身做什么得另加设置,这里以缩放为例,定义一个 bounce.xml 来设置缩放效果:
调用的时候可以这样使用:
这样就实现了一个弹簧节奏的缩放效果,感谢阅读!
/** * 实现一个弹簧效果的加速器 */ public class BounceInterpolator implements Interpolator { double mAmplitude = 1;//幅度 double mFrequency = 10;//频率 public BounceInterpolator(double amplitude, double frequency) { mAmplitude = amplitude; mFrequency = frequency; } @Override public float getInterpolation(float time) { return (float) (-1 * Math.pow(Math.E, -time / mAmplitude) * Math.cos(mFrequency * time) + 1); } }
然后设置一下我们使用弹簧插值器去播放的动画,可以是缩放,也可以是位移,注意插值器只是控制动画的节奏,但是动画本身做什么得另加设置,这里以缩放为例,定义一个 bounce.xml 来设置缩放效果:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="800" android:fromXScale="0.8" android:toXScale="1.0" android:fromYScale="0.8" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" /> </set>
调用的时候可以这样使用:
Animation animation = AnimationUtils.loadAnimation(this.getContext(), R.anim.bounce); BounceInterpolator bounceInterpolator = new BounceInterpolator(0.2, 20); animation.setInterpolator(bounceInterpolator); view.startAnimation(animation);//这里的view就是你需要做动画的view
这样就实现了一个弹簧节奏的缩放效果,感谢阅读!
相关文章推荐
- 基于JS实现Android,iOS一个手势动画效果
- android一个布局由消失变为可见时实现动画效果
- 微信小程序开发常用技巧(7)——实现一个类似于Android toast效果动画
- Android的一个项目中,实现页面之间切换时的动画效果
- 轻松实现Android,iOS的一个手势动画效果
- android一个布局由消失变为可见时实现动画效果
- Android:实现一个带动画轮播效果的公告条。
- Android上一个动画效果的实现与优化
- Android实现带动画效果的Tab Menu
- Android动画Animation之Tween用代码实现动画效果
- Android插值器、动画、分解详解,实现View摆动效果
- android动画效果之Animations(代码实现动画)
- Android动画效果Animation之Tween实现简单动画
- android Tween Animations(动画效果-XML文件实现)的使用
- Android应用开发——创建一个带动画效果的View
- 一个帖子掌握android所有控件、ProgressBar 、Android 动画效果、SQLite、四大组件、Android多媒体
- Android动画Animation之Frame实现类似电影的动画效果
- 使用HTML5和jQuery插件Reel实现一个超酷的星际争霸2兵种动画360度预览效果
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- Android利用ViewFlipper实现屏幕切换动画效果