[Android] 字体使用dp单位避免设置系统字体大小对排版的影响

[Android] 字体使用dp单位避免设置系统字体大小对排版的影响

以魄族mx3为例,在设置->显示->字体大小中能够选择字号大小例如以下图:


图1. 魄族mx3

会导致软件在有固定定高的界面中”已关联”显示不全然。

例如以下图。


图2. 字体显示不全然

       解决此问题为把TextView中的字体大小的单位由sp改为dp就可以。

   此样例展示的仅仅是因为字体大小设置后导致的高度上内容无法全然显示。还有还有一种情况是因为字体变大,本来仅仅要一行就能够显示全然的内容如今折行为两行。这可能也会破坏了原有的设计美感。所以。对于排版有严格要求的界面,其字体大小还是使用dp单位吧。

附:

       图1的设置”默认”、 ”中号”、”大号”。影响的是Configuration下的fontScale。

运行下面代码,能够得到结果:

              Configurationconf = getResources().getConfiguration();
              LogOut.e("fontScale=" + conf.fontScale);
 

打印结果:

    lab.sodino.network.MainActivity->fontScale=1.12 // 大号
    lab.sodino.network.MainActivity->fontScale=1.06 // 中号
    lab.sodino.network.MainActivity->fontScale=1.0  // 默认

原文地址:https://www.cnblogs.com/mfrbuaa/p/5389689.html