zoukankan      html  css  js  c++  java
  • Android dp和sp的用法汇总

    1 》

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

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

    [html] view plaincopy
     
    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.   
    9.      <TextView  
    10.        android:layout_width="wrap_content"  
    11.        android:layout_height="wrap_content"  
    12.        android:text="wahahahhahahahahhah"  
    13.        android:textSize="15dp"  
    14.        android:layout_below="@+id/tv"  
    15.         />  

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

    改为特大时:

    所以 字体大小要用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,系统会根据屏幕密度的变化自动进行转换

  • 相关阅读:
    恢复计算机崩溃数据的五款最佳Linux发行版
    不敢想象!Vim使用者的“大脑”竟是这样
    开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧
    .NET程序与CA对接一直提示重定向
    覆盖原有div或者Input的鼠标移上去描述
    IOS9以上如何导入铃声并设置
    c# 动态调用webserver
    没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的
    url 参数的加号变成空格处理
    在git 服务器挂载、创建新的项目、克隆新的项目
  • 原文地址:https://www.cnblogs.com/yaya-Android/p/4561583.html
Copyright © 2011-2022 走看看