在三星设备上,如果正在播放 imageView 动画,Ripple 和 Reveal 会失败

On Samsung Devices, Ripple and Reveal's fail if imageView animation is playing

这似乎只发生在三星设备上(在 S7 和 Tab S2 上测试过)。

问题 如果正在播放任何动画,所有对话波纹和显示效果都会受到阻碍、中途停止或根本不播放。

比如这个imageview动画已经启动:

RotateAnimation anim = new RotateAnimation(0.0f, 360.0f, Animation.RELATIVE_TO_SELF, 0.48f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(2000);

ivStatus.startAnimation(anim);

然后我触摸对话框中的按钮或启动显示动画。 动画要么在随机点冻结,要么可怕地断断续续。 在我的代码中,一些显示是对话框,因此当对话框显示中途停止时,它会阻止用户执行任何操作。

编辑:当使用 progressView 时也会发生这种情况,例如 com.github.rahatarmanahmed.cpv.CircularProgressView,动画。

这怎么可能prevented/fixed?这在非三星设备上工作得很好。

示例项目位于:https://github.com/behelit/SamsungAnimationFailSample

下图有冻结的波纹,此时没有发生触摸

我的解决方案是在onPause暂停所有动画,在onResume恢复。