天天看點

google now 喇叭動畫實作

google now 的喇叭動畫很自然,很平滑。

反編譯分析代碼之後,發現原理很簡單;

就是在view中畫圓。

1 啟動一個TimeAnimator 。設定成無限循環播放,利用它的 onTimeUpdate方法(每一幀回調)。

在每一幀時候去聲音能量級中取出目前聲音能量級。(能量級從0 到100)

存到mCurrentVolume字段。

為了防止每幀變化過大,設定了10的上限 。  每次變化和之前數值相差不超過10 。

然後 this.invalidate();

通知界面重新整理。

2 在界面onDraw時候,

根據mCurrentVolume大小 畫園。就可以了。

繼續閱讀