Android 中SP与DP的区别实例详解
作者:lqh 发布时间:2021-12-26 22:43:13
从一开始写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.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.androidchina.net/5519.html


猜你喜欢
- 递归三要素:1、明确递归终止条件;2、给出递归终止时的处理办法;3、提取重复的逻辑,缩小问题规模。1、1+2+3+…+nimport jav
- 最近在开发中遇到一个关于Java方法重写的一些问题,对于方法重写的用法以及可能导致的问题产生了一些思考,本文用于记录下这些想法。问题场景我们
- 在开发中当程序发生ANR或者异常,我们会将信息存在本地,然后上传服务器,这样可以实时去发现问题修改问题。那我们需要获取文件之后需要对文件进行
- 背景最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上
- 最近安装了idea,觉得比eclipse好用很多,今天不知道为啥yml文件就不识别了,上面显示一个问号,我查了半天,解决办法就是安装一个插件
- ShardingSphereShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、
- 很多C#的教材都会强调对象相等的概念。我们都知道,在C#的世界里存在两种等同性。一种是逻辑等同性:如果两个对象在逻辑上代表同样的值,则称他们
- 前言传统的Restful API 存在诸多的问题,首先它无法控制返回的字段,前端也无法预判后端的返回结果,另外不同的返回结果对应不同的请求地
- 目录MotionEventViewViewGroup事件拦截寻找目标视图,分发ACTION_DOWN分发除ACTION_DOWN外的其他事件
- 1、自定义实现该类package com.linmain.dict.handle;import org.apache.ibatis.sess
- (未给Fragment的布局设置BackGound)之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文《详解An
- import java.util.regex.Matcher;import java.util.regex.Pattern; /*
- 引言什么是Parser CombinatorParser Combinator是函数式语言中的概念,它是一种通过组合小型解析器来构建复杂解析
- 最近在学习ssh框架时,照着网上做了一个商城系统,之前在一些需要用户存在的操作中,都是在每一个action中写重复的代码,这样做现在想起来并
- 1 内部类概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是把类定义在类的内部的情况就可以形成内部类的形式。
- 前言在工作中,比如要实现一个功能,前端传什么参数,后端的controller层中怎么接收参数 ,封装成了什么实体对象,有些参数是在URL上使
- 假设目录结构是maven标准结构-src-target-test.jar(你需要更新的jar包)package com.foo.common
- 架构:MVC架构基于JWT的身份认证Spring Data (JPA)应用用户密码加密数据库密码加密SQL ServerSlf4j基于Swa
- 本文实例讲述了Java date format时间格式化操作。分享给大家供大家参考,具体如下:import java.util.Date;i
- 多播委托简介每一个委托都是继承自MulticastDelegate,也就是每个都是多播委托。带返回值的多播委托只返回最后一个方法的值多播委托