Android中dip和sp的真正区别

来源:互联网 发布:淘宝客服兼职可信吗 编辑:程序博客网 时间:2024/06/15 20:49

估计很少有人知道Android里面dip和sp的真正区别,无论你在网上怎么搜,搜出来的结果都是告诉你字体用sp,尺寸用dip 。

可是为什么字体用sp呢?谷歌为什么要这么定呢?这两个单位之间到底有什么区别呢?

其实这两个单位在大小上没有任何区别。

唯一的区别就是在系统设置里。

你手机的系统设置是不是有这么个可以调字体大小的选项?


当你用sp做字体单位时,字体会跟着这个设置项变大变小;

当你用dip做字体单位时,自己不会跟着变大变小。

我做了这么个测试:

手机是红米Note   5.5英寸  720P:

标准字号模式下:16dip = 32px ,巨无霸模式:依旧是16dip = 32px

此时把dip换为sp ,标准字号下:16sp = 32px,巨无霸模式:16sp = 45px

好,那么问题来了,到底该不该用sp做字体单位呢?我的答案是:不应该。

因为sp会跟着系统设置的字体大小变化,那么当你真的用sp做字体单位了,你的应用里面的字体就会跟随系统变大变小。

于是带来的问题某些设置了固定高度的view item就被撑开导致显示不全了。于是你精心绘制的布局就变的你都不认识了

当年我就被坑了,一个测试人员的手机字体调整为大号,而我的通知栏布局是用的sp做字体单位,于是通知栏就显示的特别丑。

不过所有的事情都是见仁见智的,如果你是布局绘制的超级高手,可以驾驭这些变化,你完全可以用sp做字体单位了。


0 0