Android 中SP与DP的区别实例详解

 更新时间:2016年10月10日 11:59:18   投稿:lqh  
这篇文章主要介绍了Android 中SP与DP的区别实例详解的相关资料,需要的朋友可以参考下

从一开始写Android程序,就被告知这些常识

1.长度宽度的数值要使用dp作为单位放入dimens.xml文件中

2.字体大小的数值要使用sp作为单位,也放入dimens.xml文件中

然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了.

偶然有一天,当我们阴差阳错地将字体写成了dp,也是可以工作,而且效果和sp一样.

这时候,就开始怀疑了,到底有啥区别呢,dp和sp有什么不同呢?

我们做个简单的Sample验证一下,如下,一个布局代码

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="18sp"
   android:text="Hello World! in SP" />

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="18dp"
   android:text="Hello World! in DP" />

得到的效果是这个样子

但是,当我们进入系统设置中修改字体大小时

再次进入之前的界面,发现了一些不一样的东西.

由此看来

使用sp作为字体大小单位,会随着系统的字体大小改变

而dp作为单位则不会.

关于sp,文档的描述为:

Scale-independent Pixels – This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.

大致意思为

sp除了受屏幕密度影响外,还受到用户的字体大小影响

通常情况下,建议使用sp来跟随用户字体大小设置

因此通常情况下,我们还是建议使用sp作为字体的单位,除非一些特殊的情况,不想跟随系统字体变化的,可以使用dp.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Flutter实现不同缩放动画效果详解

    Flutter实现不同缩放动画效果详解

    这篇文章主要为大家详细介绍了Flutter利用不同组件(ScaleTransition、SizeTransition、AnimatedSize和AnimatedBuilder)实现不同缩放动画效果,感兴趣的可以动手尝试一下
    2022-06-06
  • Android 应用程序的启动流程示例详解

    Android 应用程序的启动流程示例详解

    这篇文章主要为大家介绍了Android 应用程序的启动流程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android NDK生成及连接静态库与动态库的方法

    Android NDK生成及连接静态库与动态库的方法

    这篇文章主要介绍了Android NDK生成及连接静态库与动态库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Android实现视频的画中画功能

    Android实现视频的画中画功能

    手机观看视频的时候,有些工作需要沟通,或者参与抢购活动,同时为了不错过视频精彩片段,会选择画中画模式,这篇文章主要为大家详细介绍了Android实现视频的画中画功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Android 帧动画使用详情

    Android 帧动画使用详情

    这篇文章主要介绍本文介绍使用AnimationDrawable类来实现动画效果,需要的朋友可以参考下文
    2021-08-08
  • Android自定义控件实现简单写字板功能

    Android自定义控件实现简单写字板功能

    这篇文章主要介绍了Android自定义控件实现简单写字板功能的相关资料,需要的朋友可以参考下
    2016-04-04
  • Android实现疯狂连连看游戏之游戏效果预览(一)

    Android实现疯狂连连看游戏之游戏效果预览(一)

    这篇文章主要为大家详细介绍了Android实现疯狂连连看游戏之游戏的效果预览,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • android文件操作——读取assets和raw文件下的内容

    android文件操作——读取assets和raw文件下的内容

    本篇文章主要介绍了android文件操作——读取assets和raw文件下的内容,并附简单实例代码,需要的朋友可以参考下。
    2016-10-10
  • 从零开始使用gradle配置即可执行的Hook库详解

    从零开始使用gradle配置即可执行的Hook库详解

    这篇文章主要为大家介绍了从零开始使用gradle配置即可执行的Hook库详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Android入门之使用eclipse进行源码开发的方法

    Android入门之使用eclipse进行源码开发的方法

    这篇文章主要介绍了Android入门之使用eclipse进行源码开发的方法,较为详细的分析了使用eclipse进行Android源码开发的具体步骤与相关注意事项,需要的朋友可以参考下
    2016-02-02

最新评论