Android视图动画和硬件层
我目前正在尝试解决如何正确使用动画视图 我正在实现一个ViewGroup,它允许用户拖动一个子视图,然后我将其设置为释放时的位置(比如ViewPager在页面上的固定方式)。文章指出,应仅在动画期间启用硬件层 我遇到的问题是,在硬件层启用后,Android必须创建这些层,在Galaxy Nexus上需要70-100毫秒。这意味着我不能在开始动画之前立即执行,因为拖动和动画之间的延迟将非常明显。出于同样的原因,我在开始拖动时也无法启用它 现在,这种延迟只在第一次创建硬件层时出现,因此理想情况下,我希望在视图添加到布局后立即创建它们。有人指给我看,但我不知道该怎么做Android视图动画和硬件层,android,animation,hardware-acceleration,Android,Animation,Hardware Acceleration,我目前正在尝试解决如何正确使用动画视图 我正在实现一个ViewGroup,它允许用户拖动一个子视图,然后我将其设置为释放时的位置(比如ViewPager在页面上的固定方式)。文章指出,应仅在动画期间启用硬件层 我遇到的问题是,在硬件层启用后,Android必须创建这些层,在Galaxy Nexus上需要70-100毫秒。这意味着我不能在开始动画之前立即执行,因为拖动和动画之间的延迟将非常明显。出于同样的原因,我在开始拖动时也无法启用它 现在,这种延迟只在第一次创建硬件层时出现,因此理想情况下,我
- 实现这一目标的正确方法是什么
- 我的视图组中是否有任何方法可以覆盖并调用子视图上的buildLayer()
- 硬件层是否会以某种方式失效,导致另一个70-100ms的延迟?我该怎么处理
不应保持图层处于启用状态的原因是每次视图更新时,它会使绘图工作量加倍。例如,如果将ListView移动到层中,然后滚动列表,滚动动画期间的每个帧更新将导致:(a)列表重新绘制到层中(b)要在屏幕上绘制的层。这非常浪费,可能会导致性能问题,具体取决于用户界面的复杂性。什么是“硬件层”-GLSURFACHEVIEW?我的意思是:好吧,我可能会庆祝得早一点。我不小心把它忘在五金店了。我可以看到它在onSizeChanged()之后创建层,通常需要70+毫秒。然而,当我第一次切换到硬件时,当我需要设置动画时,同样的事情也会发生。只是要清楚,我得到了两次大延迟。一次是从onSizeChanged()构建层(),一次是第一次为视图设置动画。在那之后,就没有耽搁了。