android插值器簡單使用
來自: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0128/3925.html
其實事情是這樣的,樓主我最近在研究插值器的時候,發現了這么一個網站
http://inloop.github.io/interpolator
這個網站的可視化插值器以及演示動畫真的超級棒,而且預置了許多插值器公式真心超方便。
于是想起之前維護的basepopup里面有一個demo是放大縮小的,在我 玩弄著 網站里面的插值器的時候,發現了spring的那個公式,然后嘗試把factor調小,大概0.15左右,于是插值器就演變成這樣了
根據演示動畫,和函數圖像,加上我一直在維護著的basepopup,于是就做出了下面的這一個效果
嗯,,,,暫且命名為“果凍動畫”吧,(其實是彈簧阻尼效果)
至于做法,其實非常簡單。
插值器相關知識百度過后都大概了解到主要實現在
<p>@Override public float getInterpolation(float input) {</p>
return input;
}
這個方法(上述為linearInterpolator的插值器)
那么知道了地方,剩下的就好辦了,我們把網站上的公式直接拉下來,在new出這個插值器的時候傳入我們的factor,然后使用到scaleAnimation就完成了。
/**
- Created by 大燈泡 on 2016/1/28.
- The expression comes from web:
http://inloop.github.io/ */ public class JellyInterpolator extends LinearInterpolator { private float factor;
public JellyInterpolator() {
this.factor = 0.15f;}
@Override public float getInterpolation(float input) {
return (float) (Math.pow(2, -10 * input) * Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1);} }</pre>
代碼如上。
通過這個網站,我們可以把網上找到的插值器公式復制到網站上查看效果,或者修改一下參數看看效果,最后應用到我們的自定義插值器里面,就可以實現出各種各樣的好玩的動畫了。
</div>