【问题标题】:Animation SplashScreen and Masking LinearLayout动画 SplashScreen 和 Masking LinearLayout
【发布时间】:2020-03-19 09:18:30
【问题描述】:
我想制作 SplashScreen。是否可以仅用动画重现this? Here 是我迄今为止所做的。我将处理淡入淡出动画,但我不知道如何屏蔽布局。我可以在 LinearLayout 上使用遮罩吗?
【问题讨论】:
标签:
android
animation
android-linearlayout
【解决方案1】:
我可以帮助你,我想它可以在本地完成,但这是我的第一种方法,我们可以从那里开始:
- 作为布局,您需要有 2 个带有字母列表的回收站视图,一个在右侧,另一个在左侧,起始 alpha 为 0。
- 当活动开始时,您将两个回收站视图的 alpha 从 0 设置为 1。
- 隐藏两个 recyclerview 元素的部分隐藏部分是渐变背景,颜色从纯白色 #ffffff 到完全透明 #00ffffff
- 您有 2 个具有上述渐变背景且旋转角度相反的视图,因为方向相反(一个从下到上,另一个从上到下)。
- 用从 A 到 R 的相同字母列表准备相同的适配器,并将它们分配给两个回收视图,并设置一个从 A 的索引开始,另一个从 R 的索引开始
- 现在在两个 recyclerview 上都使用 smoothscroll,一个滚动到最后一个元素,另一个滚动到第一个元素,如果需要,您可以将平滑滚动的速度设置为比平时更快。
- 完成滚动后,在recyclerview的选定位置获取适配器元素,并使用带有值动画器和ArgbEvaluator的更新侦听器从黑色变为白色,并将文本颜色设置为onAnimationUpdate(ValueAnimator动画)动画的当前值。 getAnimatedValue()。
- 同时,使用与上述相同的过程,将父布局的背景颜色从白色更改为黑色。