为啥在棒棒糖之前的 android 设备上很难创建涟漪效应?

Posted

技术标签:

【中文标题】为啥在棒棒糖之前的 android 设备上很难创建涟漪效应?【英文标题】:Why creating ripple effect is difficult on pre lollipop android devices?为什么在棒棒糖之前的 android 设备上很难创建涟漪效应? 【发布时间】:2016-02-25 15:28:17 【问题描述】:

当我对操作系统版本低于棒棒糖的 UI 应用波纹效果时, 此时首先涟漪效果完成,然后启动其他UI流程。

因此,它使 UI 流程变慢:因为波纹动画首先完成,然后执行下一个 UI 流程。

【问题讨论】:

你的问题是什么? 你应该阅读官方文档...这不是一个真正的问题。 【参考方案1】:

根据我的理解...您问的是为什么在具有棒棒糖或更高版本的设备上涟漪效果很流畅,而在具有旧版本然后棒棒糖的设备上却不那么流畅?

如果是这样,那么答案是,因为.... android 的整个 UI 在一个主线程中管理(P.S. 在 Lollipop 之前)。 随着应用程序布局更加复杂和丰富,UI 本身的要求也越来越高,需要更多时间进行测量、绘制和布局操作。

Android Lollipop 中引入的渲染线程通过拆分两个渲染进程来帮助解决这些情况。 简而言之,我们有在 UI 工具包线程中创建的原子动画列表,然后我们将它们发送到单独存在的渲染线程中。 感谢它会继续执行这些原子动画,即使 UI 工具包线程正在执行昂贵的操作(例如膨胀活动)。

实际上这就是涟漪的工作原理。它们在渲染线程中执行,完全独立于 UI Toolkit 线程,这要感谢它们不会被中断或停止,即使新的活动窗口即将出现。

这就是为什么在 21 年前的 Android 系统中没有(简单的)方法来实现涟漪效应的原因。

参考:http://frogermcs.github.io/InstaMaterial-concept-part-3-feed-and-comments-buttons/

【讨论】:

以上是关于为啥在棒棒糖之前的 android 设备上很难创建涟漪效应?的主要内容,如果未能解决你的问题,请参考以下文章

棒棒糖设备上的 EditText 没有以强调色着色

活动/片段转换是不是与棒棒糖之前的设备兼容?

我的 android studio 项目在棒棒糖上运行良好,但在 kitkat 设备上测试时崩溃

Android AppCompat 21 海拔高度

用于 Pre-Lollipop 设备的具有弯曲背景的 Android Ripple 按钮

在棒棒糖之前更改状态栏背景颜色? [复制]