【问题标题】:How to enable Remove Animation from Settings -> Accessibility android如何启用从设置中删除动画-> 辅助功能 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 的代码。现在我到底需要在哪里通过默认禁用动画来启用?

【问题讨论】:

    标签: android android-layout animation android-source preference


    【解决方案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获取当前状态的方法(如果可能的话),这应该是默认值(与设置相同)
    猜你喜欢
    • 2021-06-27
    • 2015-06-04
    • 2022-11-02
    • 1970-01-01
    • 2018-04-28
    • 2022-12-05
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多