美文网首页
Android 揭露动画(Reveal Effect)

Android 揭露动画(Reveal Effect)

作者: 颖字传说 | 来源:发表于2018-08-21 16:56 被阅读360次

    看了大神总结的 Android 动画合集 并自己动手写了此demo,感觉还是有需要自己总结记录的地方

     Android 5.0 (L 21)添加了揭露动画,无图无真相,先上效果图(录制的效果不太好,是那个意思)

    演示

    1、简介

    背景色扩散的效果,可以给任意的View添加这种效果。 当您显示或隐藏一组 UI 元素时,揭露动画可为用户提供视觉连续性;

    揭露动画在系统中很常见,就是类似波纹的效果, 从某一个点向四周展开或者从四周向某一点聚合起来。

    可以用在 Activity 里面的 View 动画效果,用来揭露某个隐藏 View 的显示;也可以使用在 Activity 跳转过渡动画中。(以上引用网上对 揭露动画的描述)

    下面开始攻城狮最激动的爬坑路

    2、使用 (此处可直接看开篇头部的大神文章

    使用揭露动画非常简单,Android Sdk 中已经帮我们提供了一个工具类 ViewAnimationUtils 来创建揭露动画。ViewAnimationUtils 里面只有一个静态方法 createCircularReveal(View view, int centerX, int centerY, float startRadius, float endRadius), 返回一个 Animator 动画对象。

    ViewAnimationUtils.createCircularReveal() 方法能够为裁剪区域添加动画以揭露或隐藏视图,该方法有五个参数:

    第一个参数是执行揭露动画的 View 视图

    第二个参数是相对于视图 View 的坐标系,动画圆的中心的x坐标

    第三个参数是相对于视图 View 的坐标系,动画圆的中心的y坐标

    第四个参数是动画圆的起始半径,

    第五个参数动画圆的结束半径。

    通过对参数的描述很容易知道,我们要做的所有事情就是确定 ViewAnimationUtils.createCircularReveal() 这个方法的五个参数

    以上面效果图为例第一个参数 就是 图片view,第二第三个参数分别是 第一个参数的宽度高度的一半(即:图片view 的中心),

    第四第五个参数 图片view 的对角线长度此处需注意以下两点:

    (1)以中心点为轴点,当开始半径小于结束半径时,从开始半径处向外扩大到结束半径处显示View

    (2)以中心点为轴点,当开始半径大于结束半径时,从开始半径处向内缩小到结束半径处隐藏View

    3、使用总结

    严格按照以上第二点 里加黑地方的说明使用 揭露动画,就基本没什么问题了;

    在自己看来还是有两点需要记录一下,当然经过测试都是可以自己测试出来的,所以简单记录如下:

    (1)显示揭露对象时并不是在动画监听方法的 onAnimationEnd 里 进行的。(直接引用大神的总结)

                        首先揭露对象要先于动画开始前显示,因为如果动画开始时,要揭露的对象处于隐藏状态,那么动画就不会有效果,因为隐藏状态是看不到效果的。

                所以是不能 在动画结束的回调里才设置 View VISIBLE,这时动画已经结束了不会看到任何效果了。

                        另一方面,为什么不在动画开始的回调方法里设置 View.VISIBLE ,在这里调用也是可以的,一般这样设置也不会有任何问题。

               但我们在前面就说过揭露动画 是一个异步动画,它的回调方法都不能保证在准确的时间里调用(可能延迟调用,虽然很短),

               所以我们建议直接在调用动画开始方法 start() 直接设置 View.VISIBLE 为好    

    相关文章

      网友评论

          本文标题:Android 揭露动画(Reveal Effect)

          本文链接:https://www.haomeiwen.com/subject/lckjiftx.html