Android 应用目前支持基于方向、屏幕尺寸、白天和黑夜等不同的布局资源。
但是,我想提供针对有视力障碍的用户的布局,例如使用黄色背景和黑色文本的布局。
我错过了 Android 已经支持的东西吗?
我可以实现自定义 res/layout-WAI 或 res/layout-DDA 文件夹吗?
最佳答案
您不能创建自定义配置限定符。 列出了当前支持的限定符 here .
我将建议以下解决方法(示例):
为每个现有布局创建一个特殊的 WAI 布局,名称相同,但后缀为“_wai”
example_layout.xml example_layout_wai.xml
创建一个方法来根据系统需要解析适当的布局。假设我们有一个方法 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; }
为您的所有类创建一个
BaseActivity
类(或使用实用静态函数),它将覆盖setContentView
方法。您将在此处添加选择布局的逻辑。@Override public void setContentView(int layoutResID) { int newLayoutResID = resolveLayoutResourceID(layoutResID) super.setContentView(newLayoutResID); }
关于用于辅助功能视力障碍的 Android 布局资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43760579/