在三星设备上,如果正在播放 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恢复。
这似乎只发生在三星设备上(在 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恢复。