#Android# 轮子杂评 1

#Android# 轮子杂评 1

工作中常常会用到一些开源的轮子,但真的是每个都如人气般质量高么?你真的敢用么?该系列文章为你揭开一些高人气轮子的内幕。


挺多 Star 的。但是首先该动画用 View 来实现就要扣分了,实际上像此类无交互(例如不需要处理 Touch 事件)的纯动画不应该使用 View 作为容器,直接用 Drawable 实现就行了(能避免基类问题)。再仔细看了下代码,妈蛋,直接是个 ViewGroup 然后内嵌几个子 View,通过 属性动画来实现的(用的还是使用反射的 ObjectAnimator),差评。



这个动画挺多的所以 Star 数也更多,但同样直接扔了个 View 出来(虽然你也可以用它内部的 Indicator,因为 Indicator 继承的 Drawable)。在 Indicator 里面借助多个 ValueAnimator 来实现数值变化,好处是用起来简单,不需要自己计算动画的中间值,而且可以使用 ArgbEvaluator 和 RectEvaluator 等这类系统提供的插值器。

然而但这并不是 Drawable 推荐实现动画的方法,更正确的做法是使用 scheduleSelf() 方法。可以参考这里 An example showing how to create and use a Drawable that animates. 虽然 ValueAnimator 和 scheduleSelf() 本质上都是通过线程内 Looper 的定时消息实现的,但是 scheduleSelf() 将动画的播放权交给所在的 View,View 可以决定是否播放 Drawable 的动画,而用 ValueAnimator 的话则需自己处理。

不至于太差,中评。(工作上要用到其中一个类似的动画,但个人最终还是没敢用这个轮子,自己造了)

编辑于 2016-11-26