如何基于AOSP代码默认启用Android无障碍设置中的移除动画功能
实现默认启用「移除动画」的修改方案
你可以按以下两种方案修改,按需选择即可:
方案1:修改动画全局配置默认值(推荐,生效最彻底)
该方案直接修改系统全局动画参数的初始默认值,不需要额外操作开关,系统首次启动就默认关闭所有动画:
你需要修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml中的3个动画默认配置项,把原有默认值1改为0:
<!-- 修改前默认值为1,改为0即可 --> <integer name="def_window_animation_scale">0</integer> <integer name="def_transition_animation_scale">0</integer> <integer name="def_animator_duration_scale">0</integer>
修改完成后,你给出的代码中updateDisableAnimationsToggle()方法会自动读取这三个参数的默认值,判断所有动画已关闭,自动把「移除动画」开关置为勾选状态,完全符合需求。
方案2:修改无障碍页面开关默认勾选状态
如果只需要保证无障碍设置页面的「移除动画」开关默认显示勾选,你可以在给出的代码里的开关初始化位置,新增默认值配置:
mToggleDisableAnimationsPreference = (SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS); // 新增以下行,设置开关默认勾选 mToggleDisableAnimationsPreference.setDefaultValue(true); updateDisableAnimationsToggle();
注意该方案仅修改开关显示状态,需要配合方案1的参数修改才能实际生效,否则会出现开关已勾选但动画仍然存在的异常。
验证方法
编译固件刷机后首次进入系统,检查「无障碍」设置页的「移除动画」开关默认处于勾选状态,打开应用、切换系统页面无过渡动画即为修改成功。
界面参考:
内容的提问来源于stack exchange,提问作者Star
相关产品推荐
相关产品推荐


