天天看点

google now 喇叭动画实现

google now 的喇叭动画很自然,很平滑。

反编译分析代码之后,发现原理很简单;

就是在view中画圆。

1 启动一个TimeAnimator 。设置成无限循环播放,利用它的 onTimeUpdate方法(每一帧回调)。

在每一帧时候去声音能量级中取出当前声音能量级。(能量级从0 到100)

存到mCurrentVolume字段。

为了防止每帧变化过大,设置了10的上限 。  每次变化和之前数值相差不超过10 。

然后 this.invalidate();

通知界面刷新。

2 在界面onDraw时候,

根据mCurrentVolume大小 画园。就可以了。

继续阅读