如何启用从设置中删除动画-> 辅助功能 android

Posted

技术标签:

【中文标题】如何启用从设置中删除动画-> 辅助功能 android【英文标题】:How to enable Remove Animation from Settings -> Accessibility android 【发布时间】:2022-01-12 06:33:27 【问题描述】:

我需要启用从辅助功能中删除动画。默认情况下,它已被禁用。

下面是图片。

如何默认开启移除动画?

这是默认禁用的代码。

     private SwitchPreference mToggleDisableAnimationsPreference;

       // Settings that should be changed when toggling animations
    private static final String[] TOGGLE_ANIMATION_TARGETS = 
            Settings.Global.WINDOW_ANIMATION_SCALE, Settings.Global.TRANSITION_ANIMATION_SCALE,
            Settings.Global.ANIMATOR_DURATION_SCALE
    ;
    private static final String ANIMATION_ON_VALUE = "1";
    private static final String ANIMATION_OFF_VALUE = "0";

    mToggleDisableAnimationsPreference =
                (SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS);

     updateDisableAnimationsToggle();

  @Override
    public boolean onPreferenceTreeClick(Preference preference) 

     if (mToggleDisableAnimationsPreference == preference) 
            handleToggleDisableAnimations();
            return true;
         
     return super.onPreferenceTreeClick(preference);

 

  private void handleToggleDisableAnimations() 
        String newAnimationValue = mToggleDisableAnimationsPreference.isChecked()
                ? ANIMATION_OFF_VALUE : ANIMATION_ON_VALUE;
        for (String animationPreference : TOGGLE_ANIMATION_TARGETS) 
            Settings.Global.putString(getContentResolver(), animationPreference, newAnimationValue);
        
    

 private void updateDisableAnimationsToggle() 
        boolean allAnimationsDisabled = true;
        for (String animationSetting : TOGGLE_ANIMATION_TARGETS) 
            if (!TextUtils.equals(
                    Settings.Global.getString(getContentResolver(), animationSetting),
                    ANIMATION_OFF_VALUE)) 
                allAnimationsDisabled = false;
                break;
            
        
        mToggleDisableAnimationsPreference.setChecked(allAnimationsDisabled);
    

这是来自 aosp 的代码。现在我到底需要在哪里通过默认禁用动画来启用?

【问题讨论】:

【参考方案1】:

您可以尝试执行handleToggleDisableAnimations(稍作修改),但我怀疑普通应用程序可以更改此设置,afaik 没有权限

private void handleDisableAnimations(boolean enabled) 
    String newAnimationValue = enabled
            ? ANIMATION_ON_VALUE : ANIMATION_OFF_VALUE;
    for (String animationPreference : TOGGLE_ANIMATION_TARGETS) 
        Settings.Global.putString(getContentResolver(), animationPreference, newAnimationValue);
    

【讨论】:

好的。让我试试这个。所以默认情况下,checkbox 应该设为 true 并在 this 中传递这个值? 你有getString获取当前状态的方法(如果可能的话),这应该是默认值(与设置相同)

以上是关于如何启用从设置中删除动画-> 辅助功能 android的主要内容,如果未能解决你的问题,请参考以下文章

三星手机怎么减少动画时间

我可以检测 iPhone 是不是启用了模糊功能吗?

如何知道用户是不是在“设置”->“辅助功能”中禁用了透明度?

华为手机屏幕出现涂鸦

如何检查按钮形状是不是启用? [复制]

MAUI新生6.9-控件辅助功能①:动画Animation