android插值器簡單使用

si40b7c5 10年前發布 | 19K 次閱讀 安卓開發 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>

 本文由用戶 si40b7c5 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!