[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 // 默认