1 》

dp 是跟像素密度无关的单位,也就是说在相同尺寸、但不同的分辨率的手机上,用dp标识的东西,显示的大小是一样的。

sp是用于标识字体的,它不仅跟屏幕尺寸有关,还跟设置的系统字体大小有关。

  1. <TextView
  2. android:id="@+id/tv"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:text="wahahahhahahahahhah"
  6. android:textSize="15sp"
  7. />
  8. <TextView
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:text="wahahahhahahahahhah"
  12. android:textSize="15dp"
  13. android:layout_below="@+id/tv"
  14. />

系统字体大小为中时(默认的哦)

改为特大时:

所以 字体大小要用sp哦~

2》

Android设置字体大小, 该用sp还是dp? 大部分人肯定脱口而出, 用sp啊, 傻瓜都知道要用sp而不是dp!!!

那么为什么呢? 可能有人会说, 是google官方专门定义了sp这个单位来描述字体大小, google建议这样搞的!

我想说的是, 大家可能被google误导了吧. 我们来通过实验证明这个道理:

首先我示范一下sp, 我想listview item中的主文本大小设置成18sp, 然后我们看看他在不同屏幕上的反应:

1. Nexus 5

2. 华为某低端机

有没有发现, 华为机器上字体明显大了许多, 有点不符合预期啊有木有!!!

下面我们把sp改成dp, 也就是字体大小改成18dp, 再看看效果:

1. Nexus 5

2. 华为某低端机

明显发现, 用dp的话, 在高端机和低端机上体验更加一致, 字体大小比例更加合适!!!

当然, 我不是要和google抗衡, 非得用dp不用sp, 其实在实际开发中, 我们还是应该多用sp少用dp, 只有在字体比较大的时候, 比如超过了15sp时, 大家这时候就可以考虑用dp试试了.

3》

  1. dp也就是dip,这个和sp基本类似。

    如果设置表示长度、高度等属性时可以使用dp或sp。但如果设置字体,需要使用sp。

  2. 2

    dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。

  3. 3

    如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换

Android dp和sp的用法汇总的更多相关文章

  1. Android度量单位说明(DIP,DP,PX,SP) (转帖)

    (一)概念 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不 ...

  2. Android的px、dp和sp

    Android的px.dp和sppx: 即像素,1px代表屏幕上一个物理的像素点:偶尔用到px的情况,是需要画1像素表格线或阴影线的时候. dp: 这个是最常用但也最难理解的尺寸单位.它与“像素密度” ...

  3. Android中dip、dp、sp、pt和px的区别

    1.概述 过去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小.在有些情况 ...

  4. Android中常用单位dp,px,sp之间的相互转换

    MainActivity如下: package cc.testunitswitch; import android.os.Bundle; import android.util.DisplayMetr ...

  5. Android度量单位说明(DIP,DP,PX,SP)

    本文转载于:http://blog.sina.com.cn/s/blog_6b26569e0100xw6d.html (一)概念 dip: device independent pixels(设备独立 ...

  6. Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度

    ###########################################Android计量单位########################################### px ...

  7. [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配

    http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI ...

  8. Android中dip,dp,sp,pt和px的区别

    dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. ...

  9. Android px、dp、sp之间相互转换 系统默认12 sp

    px  就是像素 sp=dpX字体比例(1.25f) 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px ...

随机推荐

  1. Android 开发佳站【转】

    Android控件拖动 这里演示控件拖动的动画:     原理就是响应控件的Touch事件,在Touch事件中对移动进行处理,注意,一定要在布局文件中设置控件的 android:clickable=& ...

  2. 《Effective C++》:条款48:理解力template 元编程

    Template metaprogramming(TMP,模板元编程)这是写template-based C++规划.编译过程.template metaprogramming随着C++写模板程序,化 ...

  3. java面试核心基础(1)

    1.以下代码的执行结果 String s1 = "helloworld"; String s2 = "hello" + new Stirng("wor ...

  4. JavaWeb解释一下什么是 servlet?

    Servlet是一种独立于平台和协议的服务端的java技术,可以生成动态WEB页面与传统的CGI(计算机图形接口)和其他类似的CGI技术相比.Servlet具有更好的可移植性.更强大的功能,更少的投资 ...

  5. 【转载】设备坐标(窗口/window)和逻辑坐标(视口/viewport)

    一.预备知识 1.窗口是基于逻辑坐标的. 2.视口是基于设备坐标. 3.设备坐标是以像素为单位的,逻辑坐标是以.cm,m,mm,..... 4.系统最后一定要把逻辑坐标变为设备坐标. 5.设备坐标有3 ...

  6. C#读取网页

    public bool getweb(string strURL,out string buf) { buf=""; try { //Uri url=new Uri(strURL, ...

  7. Symfony框架系列----常用命令

    一.常用命令 从Entity操作数据库: app/console doctrine:database:create # 创建数据库 app/console doctrine:schema:update ...

  8. [LeetCode]题解(python):072-Edit Distance

    题目来源: https://leetcode.com/problems/edit-distance/ 题意分析: word1最少通过多少步可以变成word2.word1只能进行一下的操作.a)插入一个 ...

  9. .NET Core 安装

    Visual Studio 2015 和 .NET Core 安装 安装 Visual Studio 和 .NET Core 1.安装 Visual Studio Community 2015,选择 ...

  10. 国内外主流BI厂商对比

    BI(Business Intelligence),即商业智能或者商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决 ...