所以我需要做的是在代码中打开和关闭窗口和/或过渡动画,以达到与设置>相同的效果。显示>动画>禁用所有动画。
我熟悉更改设备设置的方法是使用Settings.System.putInt()方法中的ContentResolver,如下所示:
ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WINDOW_ANIMATION_SCALE, 0);
如文档“设置为0将禁用所有....动画”中所述的两种设置。在使用putInt()方法之前和之后读取设置时,使用:
Settings.System.getString(cr, Settings.System.WINDOW_ANIMATION_SCALE);
我可以看到设置正在更改。然而,当然后做一些事情来开始窗口或过渡动画时,很明显看到设置没有任何差别,并且转换仍然发生。
我还想说,当我在“设置”屏幕中更改设置时,我可以看到当我重新运行应用程序时设置已更改。所以这似乎是正确的设置,我的应用程序没有正确更改它。
还有其他我想念的东西吗?
提前致谢。
答案 0 :(得分:2)
检查您是否设置了正确的比例。
Settings.System.TRANSITION_ANIMATION_SCALE
将更改活动转换。
其中:
Settings.System.WINDOW_ANIMATION_SCALE
会影响Window动画,例如Dialogs打开。
(已添加API16)这将启用/禁用查看特定动画。
Settings.System.ANIMATOR_DURATION_SCALE
另外我很确定这些是floats
,因为它们可以是0.5x动画设置,意味着半速。我之前从未尝试过这些应用程序。
但有两件事情浮现在脑海中:
ContentProvider
是异步的,您需要收听设置完成设置Activity
,但我必须测试该理论。