Android 设备之间的动画不一致
Android animation inconsistent between devices
我使用视图动画将视图的 x 和 y 设置为用户触摸的 x 和 y。这会将有问题的视图动画化到所需的位置。当触摸事件被取消时,视图将在更长的持续时间内通过相同类型的动画进行动画处理,以产生视图快速回到其原始位置的效果。
在高端设备上动画效果完美,但在低端设备上会出现以下情况:
当我使用调试选项显示 gpu 渲染并将视图拖动到所需位置时,整个屏幕按预期闪烁。当我释放视图时,仅在相关视图的原始位置闪烁的块和动画仅在视图进入该区域并按时间间隔捕捉到该区域时才可见,该时间间隔必须在视图中可见堵塞。
此动画在低端和高端设备上花费的时间相同,而在高端设备上,整个视图在发布时如预期的那样闪烁,与低端设备相矛盾。
我曾在不同场合尝试过使用此代码
touchedView.setLayerType(View.LAYER_TYPE_HARDWARE , null);
touchedView.setLayerType(View.LAYER_TYPE_SOFTWARE , null);
它稍微改进了动画,但对所讨论的问题没有任何作用。
我通过禁用整个应用程序的硬件加速解决了这个问题,显然在 android 4.3 之前硬件加速存在错误,但我可能弄错了确切的版本号,因为信息不是官方的
我使用视图动画将视图的 x 和 y 设置为用户触摸的 x 和 y。这会将有问题的视图动画化到所需的位置。当触摸事件被取消时,视图将在更长的持续时间内通过相同类型的动画进行动画处理,以产生视图快速回到其原始位置的效果。
在高端设备上动画效果完美,但在低端设备上会出现以下情况:
当我使用调试选项显示 gpu 渲染并将视图拖动到所需位置时,整个屏幕按预期闪烁。当我释放视图时,仅在相关视图的原始位置闪烁的块和动画仅在视图进入该区域并按时间间隔捕捉到该区域时才可见,该时间间隔必须在视图中可见堵塞。
此动画在低端和高端设备上花费的时间相同,而在高端设备上,整个视图在发布时如预期的那样闪烁,与低端设备相矛盾。
我曾在不同场合尝试过使用此代码
touchedView.setLayerType(View.LAYER_TYPE_HARDWARE , null);
touchedView.setLayerType(View.LAYER_TYPE_SOFTWARE , null);
它稍微改进了动画,但对所讨论的问题没有任何作用。
我通过禁用整个应用程序的硬件加速解决了这个问题,显然在 android 4.3 之前硬件加速存在错误,但我可能弄错了确切的版本号,因为信息不是官方的