[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 // 默认
本文探讨了在Android应用中如何使用dp单位替代sp单位来设置字体大小,以避免因用户调整系统字体大小而导致的界面排版问题。通过具体实例说明了这种做法能够有效防止文本内容显示不全或换行,保持界面美观。
291

被折叠的 条评论
为什么被折叠?



