禁用窗口和过渡(Disable window and transition settings)

2019-06-25 07: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);

我可以看到设置被改变。 然而然后做一些事情的时候,开始一个窗口或过渡动画很明显地看到,设置并没有作出任何的区别和过渡仍然存在。

我还想说,当我从设置屏幕中更改设置,我可以看到设置已经改变,当我重新运行我的应用程序。 如此看来,这是正确的设置和我的应用程序不能正确改变它。

有别的我失踪?

提前致谢。

Answer 1:

检查要设置正确的尺度。

Settings.System.TRANSITION_ANIMATION_SCALE 

将改变活动的转变。

凡为:

Settings.System.WINDOW_ANIMATION_SCALE

将影响窗口动画如对话框打开。

(新增API16)这将启用/禁用查看具体的动画。

Settings.System.ANIMATOR_DURATION_SCALE

此外,我敢肯定,这些floats ,因为这些可能是0.5倍的动画设置意味着速度的一半。 我从来没有从应用程序之前尝试了这些。

但是有两件事浮现在脑海中:

  • ContentProvider是异步的,你需要听设定到成品是集
  • 此外,这些可能不会在您创建/光洁度和活动工作。 这意味着改变它们中旬活动可能不会影响当前的Activity ,但我将不得不测试理论。


文章来源: Disable window and transition settings