大字体模式适配文档

     MIUI 7的设计理念是『为你设计』,针对不同的人群推出了不同的适配功能。『大字体模式』即为MIUI7上的重点功能点。

 

系统的『字体大小』(设置-字体大小)分为以下几档:

  • 标准,sp值放大1.0
  • 中号,sp值放大1.15
  • 大号,sp值放大至1.32
  • 超大,sp值放大至1.40
  • 巨无霸,sp值放大值1.40,仅针对特定的系统应用(电话、短信及联系人)做提供接口

我们希望第三方应用能够完美支持/适配系统字号,当系统字号改变时,应用操作界面、内容显示区域文字也随之改变。与此同时,保持界面视觉样式的美观(不重叠,不错位,不裁切)。以下是几款应用在MIUI 切换至超大字体后的界面效果:

fsd

第三方应用应当如何来适配呢?

如果第三方应用已经有字号设置的功能,适配工作相对简单,只需将MIUI 系统的字号标准与应用自身的字号标准做一个映射关系;如果第三方应用尚不支持字号设置,要做的事情则是先支持不同字号的设置,然后将此设置与MIUI 系统字号做映射。

支持的系统版本

MIUI 7 最新的的体验版及开发版

如何判断MIUI 系统当前的字号?

开发者可通过以下代码来判断设备上的MIUI 系统当前字号模式:

/**

    * 判断MIUI字体模式方法,

* 切换方式见: 设置->显示->字体

*/

private void testMIUIFontMode() {

final int UI_MODE_TYPE_SCALE_SMALL = 0x0c;   //小号, sp值会被缩放0.86

final int UI_MODE_TYPE_SCALE_MEDIUM = 0x0d;//中号, sp值会被缩放1.15

final int UI_MODE_TYPE_SCALE_LARGE = 0x0e;  //大号, sp值会被缩放1.32

final int UI_MODE_TYPE_SCALE_HUGE = 0x0f;     //超大, sp值会被缩放1.40

final int UI_MODE_TYPE_SCALE_GODZILLA = 0x0b; // 巨无霸, sp值会被缩放1.40

// 超大和巨无霸缩放完全一致, 只是提供接口供需要的App适配.

 

Configuration config = Resources.getSystem().getConfiguration();

int mode = config.uiMode & Configuration.UI_MODE_TYPE_MASK;

 

if (mode == UI_MODE_TYPE_SCALE_SMALL) {

// do something

} else if (mode == UI_MODE_TYPE_SCALE_MEDIUM) {

// do something

} else if (mode == UI_MODE_TYPE_SCALE_LARGE) {

// do something

} else if (mode == UI_MODE_TYPE_SCALE_HUGE) {

// do something

} else if (mode == UI_MODE_TYPE_SCALE_GODZILLA) {

// do something

} else {

// normal mode.

}

}