禁用窗口和转换设置

时间:2012-06-07 17:38:16

标签: android settings android-contentresolver

所以我需要做的是在代码中打开和关闭窗口和/或过渡动画,以达到与设置>相同的效果。显示>动画>禁用所有动画。

我熟悉更改设备设置的方法是使用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);

我可以看到设置正在更改。然而,当然后做一些事情来开始窗口或过渡动画时,很明显看到设置没有任何差别,并且转换仍然发生。

我还想说,当我在“设置”屏幕中更改设置时,我可以看到当我重新运行应用程序时设置已更改。所以这似乎是正确的设置,我的应用程序没有正确更改它。

还有其他我想念的东西吗?

提前致谢。

1 个答案:

答案 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,但我必须测试该理论。