【问题标题】:Disable window and transition settings禁用窗口和过渡设置
【发布时间】:2012-06-07 17:38:16
【问题描述】:

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

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

我可以看到设置正在更改。但是,当随后执行某些操作以开始窗口或过渡动画时,很明显可以看到设置没有产生任何影响,并且过渡仍然发生。

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

我还有什么遗漏的吗?

提前致谢。

【问题讨论】:

  • 您能找到解决方案吗?我正在努力解决同样的问题

标签: android settings android-contentresolver


【解决方案1】:

检查您是否设置了正确的比例。

Settings.System.TRANSITION_ANIMATION_SCALE 

将更改 Activity 转换。

在哪里:

Settings.System.WINDOW_ANIMATION_SCALE

会影响窗口动画,例如打开对话框。

(添加 API16)这将启用/禁用查看特定动画。

Settings.System.ANIMATOR_DURATION_SCALE

我也很确定这些是floats,因为它们可以是 0.5 倍动画设置,意思是半速。我以前从未在应用程序中尝试过这些。

但我想到了两件事:

  • ContentProvider 是异步的,您需要收听设置完成设置
  • 此外,在您创建/完成和活动之前,这些可能不会起作用。这意味着在活动中更改它们可能不会影响当前的Activity,但我将不得不测试该理论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    相关资源
    最近更新 更多