5

在我的应用程序中,当用户启用可访问性颜色反转模式时,我需要进行一些 UI 更改。

我们有任何 api 来检查 android 中颜色反转模式的启用/禁用状态吗?

4

2 回答 2

5

下面是检查可访问性反转模式的启用/禁用状态的代码。在某些手机反转模式中将提供“负色”。

public boolean isInversionModeEnabled() {
    boolean isInversionEnabled =  false;
    int accessibilityEnabled = 0;
    try {
        accessibilityEnabled = Settings.Secure.getInt(this.getContentResolver(),
                android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
    } catch (SettingNotFoundException e) {
        Log.d(TAG, "Error finding setting ACCESSIBILITY_DISPLAY_INVERSION_ENABLED: " + e.getMessage());
        Log.d(TAG, "Checking negative color enabled status");
        final String SEM_HIGH_CONTRAST = "high_contrast";
        accessibilityEnabled = Settings.System.getInt(getContentResolver(), SEM_HIGH_CONTRAST, 0);
    }
    if (accessibilityEnabled == 1) {
        Log.d(TAG, "inversion  or negative colour is enabled");
        isInversionEnabled = true;
    } else {
        Log.d(TAG, "inversion  or negative colour is disabled");
    }
    return isInversionEnabled;

}
于 2017-06-18T18:53:36.873 回答
0

颜色反转不会改变颜色之间的对比度,所以如果你开始在灰色背景上有白色文本,并且你声称深灰色上的反转黑色很难看到,那么对于某些用户来说也很难看到原文。

也许原始文本颜色应该是黑色的?最终,根据WCAG 标准 1.4.3 上的对比度,您的最小比率应为 4.5:1。请参阅 UX Stack Exchange 上的这篇文章,了解如何使用黑白文本进行计算

于 2017-05-17T21:22:01.270 回答