So what I need to do is toggle window and/or transition animations on and off in code, to have the same effect of going Settings > Display > Animations > Disable all animations.
The way I am familiar with changing device settings is by using a ContentResolver within the Settings.System.putInt() method as follows:
ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WINDOW_ANIMATION_SCALE, 0);
As described in the documentation 'Setting to 0 will disable all .... animations' for both settings. When reading the setting before and after using the putInt() method, using this:
Settings.System.getString(cr, Settings.System.WINDOW_ANIMATION_SCALE);
I can see that the setting is being changed. However when then doing something to begin a window or transition animation it is obvious to see that the setting hasn't made any difference and the transition still occurs.
I would also like to say that when I change the setting from within the Settings screen, I can see that the setting has been changed when I rerun my application. So it seems this is the correct setting and that my application isn't changing it correctly.
Is there something else I'm missing?
Thanks in advance.
Check you are setting the correct scales.
Settings.System.TRANSITION_ANIMATION_SCALE
Will change the Activity transitions.
Where as:
Settings.System.WINDOW_ANIMATION_SCALE
Will effect the Window animations such as Dialogs opening.
(Added API16) This will enable/disable View specific animations.
Settings.System.ANIMATOR_DURATION_SCALE
Also I'm pretty sure these are floats
as these can be 0.5x animation settings meaning half speed. I have never tried these from an App before.
But two things come to mind:
- The
ContentProvider
is asynchronous, and you will need to listen to the Setting to finished being set - Also that these will probably not work until you create/finish and activity. meaning changing them mid activity might not effect the current
Activity
, but I will have to test that theory.
来源:https://stackoverflow.com/questions/10936946/disable-window-and-transition-settings