2017-05-17 29 views
2

在我的应用程序中,当用户启用辅助功能颜色反转模式时,我需要对UI进行一些更改。获取启用/禁用状态和辅助功能颜色反转模式

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

+0

基于颜色反转,您需要做出什么样的改变?即使有可能,我也不会想到这将是一种很好的可访问性实践。 –

+0

在我的屏幕上有一些地方可以使用灰色背景和白色文字。现在,当应用反转模式时,我的系统会将灰色背景变为黑白文本附近的黑色。所以这里既背景和文字颜色都是黑色的,所以用户无法看到文字。 所以我的意图是,如果反转启用改变文字颜色为白色或任何其他可见colour.This我想编程 – Naresh

回答

1

下面是检查辅助功能反转模式启用/禁用状态的代码。在某些手机反转模式下可用作“负色”。

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; 

} 
0

颜色反转不会改变颜色之间的对比度,所以如果灰色背景上有白色文字开始,并且您声称深灰色的反转黑色很难看清,那么它同样很难一些用户看到原文。

也许原来的文字颜色应该是黑色的?最终,根据WCAG criterion 1.4.3 on Contrast,你应该有一个4.5:1的最小比例。看到这个post on the UX Stack Exchange for how to compute using black vs. white text

+0

“也许原来的文字颜色应该是黑色的?”其实我们的HID是这样的,原因后面是当用户打开屏幕(可以说我们有用户名和密码的登录屏幕)灰色边框上的按钮文本是白色的,一旦用户输入uname和pwd,则按钮颜色将变为黑色。 所以当我打开我的屏幕我想检查反转模式是否启用。如果启用了反转模式,那么我想将按钮的颜色更改为灰色,或者将某些颜色更改为对用户可见。同样,如果用户启用/禁用反转模式,我的应用程序应该监听(如广播)。 – Naresh

+0

我明白你想要做什么,但是你做这件事的动机是对比度差。我的观点是,没有颜色反转的原始内容中的对比度在数学上是等价的。您正在尝试以错误的方式解决问题。如果您改变非反转颜色以获得良好的对比度,那么反转模式不会成为问题。 –

+0

好的..让我检查一下。您能否在下面提供您的意见? - 是否有任何API来检查反转模式启用还是禁用? - 有没有什么方法可以获得通知应用程序:反转模式启用/禁用动态更改? – Naresh