android 字体用 sp dp,Android中给TextView字体大小用dp还是sp?dp和sp有什么区别?老年机字体被放大了怎么办?...

dp,sp都会根据屏幕ppi显示大小不同。

ppi的运算方式是:

PPI = (开根号(长度像素数² + 宽度像素数²)) / 屏幕对角线英寸数

dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,

dp和px的换算公式 :

dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。

sp 与 px 的换算公式:sp*ppi/160 = px

所以dp = sp?

注意sp的特点是能随系统而变化。

问题来了,在我开发过程中,遇到了Android老年机,对!有种机器是老年机专用,手机的默认字号都比较大,所以导致APP中的各个地方文字都因为字体太大而显示不全。

将手机拿来,设置中把系统文字大小修改为标准后,问题解决了。

但是,我们无法强制老年人为了这个APP而将系统字体大小都改成标准吧?

对应策略:

如果需要固定字体大小显示的,只有用dp单位了,这个dp单位单纯和ppi挂钩,不跟随系统字体大小变化。

...

android:textSize="15dp"

...

/>

如果不用固定字体大小,但是想要在各个控件都显示全的话,那么就用自适应字体大小的方式吧,代码如下:

...

app:autoSizeTextType="uniform"

android:lines="1"

app:autoSizeMinTextSize="1sp"

android:textSize="15sp"

...

/>

注意:autoSizeTextType和autoSizeMinTextSize的Schema是【xmlns:app="http://schemas.android.com/apk/res-auto"】提供的,而不是默认的Android,否则Android8.0版本下会不支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值