用于辅助功能视力障碍的 Android 布局资源

标签 android android-layout android-view wai-aria accessibility

Android 应用目前支持基于方向、屏幕尺寸、白天和黑夜等不同的布局资源。

但是,我想提供针对有视力障碍的用户的布局,例如使用黄色背景和黑色文本的布局。

我错过了 Android 已经支持的东西吗?

我可以实现自定义 res/layout-WAI 或 res/layout-DDA 文件夹吗?

最佳答案

您不能创建自定义配置限定符。 列出了当前支持的限定符 here .

我将建议以下解决方法(示例):

  1. 为每个现有布局创建一个特殊的 WAI 布局,名称相同,但后缀为“_wai”

    example_layout.xml
    example_layout_wai.xml
    
  2. 创建一个方法来根据系统需要解析适当的布局。假设我们有一个方法 isWAI(),解析方法看起来像这样:

    public int resolveLayoutResourceID(int layoutResID) {
        int newLayoutResID = layoutResID;
        if (isWAI()) {
            String layoutResName = getResources().getResourceEntryName(layoutResID);
            String newLayoutResName = layoutResName + "_wai";
            newLayoutResID = getResources().getIdentifier(newLayoutResName, "layout", getPackageName());
        }
        return newLayoutResID;
    }
    
  3. 为您的所有类创建一个 BaseActivity 类(或使用实用静态函数),它将覆盖 setContentView 方法。您将在此处添加选择布局的逻辑。

    @Override
    public void setContentView(int layoutResID) {
        int newLayoutResID = resolveLayoutResourceID(layoutResID)
        super.setContentView(newLayoutResID);
    }
    

关于用于辅助功能视力障碍的 Android 布局资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43760579/

相关文章:

Android View 旋转后宽高没有变化

xml - 如何在我的自定义形状 xml 中添加图像

android - 在 TableRow 中创建具有相同宽度的 TextView

android - 永远不会调用 MotionEvent.ACTION_UP

android - JSON/CFML - 遍历结构数组

java - 自定义 ScrollView 在引用 xml 文件行时因错误膨胀类而崩溃

android - 在 Android 中使用 Fragments 而不是 Views 有什么好处?

android - 在 gridview 适配器中,getView(position == 0) 在加载器中的 setImageBitmap() 被调用太多次以测量布局

android - 动态生成的 TextView 中的默认样式

android - 单击按钮时打印 Toast 而没有给出答案