Reveal Effect
Android 5.0 系统提供了 ViewAnimationUtils#createCircularReveal()
API,用于给我们方便的创建揭露动画。但是该 API 只支持 5.0 及以上,那么 5.0 以下该怎么办呢?我发现网上的一些方法,都是通过自定义 Shape 然后通过 Scale 动画来做,这并不是一个好的方法,局限性太大。所以我觉得有必要写一篇文章来介绍下另一种更好的方案。其实官方就提供了一个兼容实现类:CircularRevealCompat
,我们完全可以使用它来做兼容。
CircularRevealCompat
CircularRevealCompat
类中也有 createCircularReveal()
函数,使用方式也都和之前一样。唯一区别在于第一个参数为 CircularRevealWidget
接口而不是 View
:
public static Animator createCircularReveal(
CircularRevealWidget view, float centerX, float centerY, float startRadius, float endRadius) {
...
}
也就是说,我们必须对实现了 CircularRevealWidget
接口的 View 做动画,而没有实现的则不可以。