首先弄明白三个概念

dp/dip(Density-independent pixel ) 设备独立像素(是一个关联Density和pixel的虚拟像素单位)

dpi (dots per inch) 每英寸的像素的数量(每英寸等于2.54厘米 .通常说的屏幕尺寸是屏幕的对角线长度)

px (pixels)像素  屏幕实际的像素,不同设备显示效果相同。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。

Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi)

在程序运行时,系统根据屏幕的实际密度透明的处理任何需要缩放的设备独立像素单元,设备独立像素转换成屏幕实际像素的换算很简单:px = dp * (dpi/ 160).  pixls=160*(320/160)

对这个公式解释:

例如:屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),Android API 说,如果屏幕密度为160,这时dp和px是一样的。1dp=1px; 例如 有一张定义为“100dp”的图片,在像素密度中(160dpi,也就是说240*320)手机上实际显示100px,如果你换成高(240dpi)上,那么就会显示 240/160 *100=150px

如果你把图片定义为 “100px”,在像素密度中(160dpi)显示是一样的,如果换高(240dpi),它每英寸放的像素的数量多,只用图片长度的一半就把一张图片放下了,看起来就短了一半,所以通常用dp

附加API:

The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen.

总结:

drawable-xhdpi 1dp=2px

drawable-hdpi  1dp=1.5px

drawable-mdpi  1dp=1px

drawable-ldpi  1dp=0.75px

sp:

与缩放无关的抽象像素(Scale-independent Pixel)。sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

出自:

http://blog.csdn.net/huazai963184709/article/details/8840734

dpi与dp的关系_Android中 dp,px,dpi三者之间的关系相关推荐

  1. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

  2. android类之间的关系,Android 中Activity,Window和View之间的关系

    Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如 onKeyEvent, onTouchEvent等. 并维护应用程序的生命周期.Acti ...

  3. java中setSize(),setLocation(),setBounds三者之间的关系和用法

    开始学习java,感觉有好多小的东西都需要去进行总结,唉,没办法,既然选择了java那就一步一步来吧!加油! setSize(int width,int heigth): 就是定义控件的大小,setS ...

  4. anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一个开源的Pytho ...

  5. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  6. 程序中try、throw、catch三者之间的关系

    c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...

  7. 甲方、乙方、监理三者之间的关系及其在项目管理过程中的若干事项

    1.甲方.乙方.监理三者之间的关系 甲方是工程项目的投资单位和受方单位,乙方是工程项目的承建单位和供方单位,监理是工程项目的监管单位和第三方单位.广义方面来讲,监理也属于乙方的范畴,是服务的提供者.从 ...

  8. PHP-FPM,Nginx,FastCGI 三者之间的关系

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍 PHP-FPM,Nginx,FastCGI 三者之间的关系,以及 Nginx 反向代理和负载均衡的配置. PHP-F ...

  9. python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? 1.python Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一 ...

最新文章

  1. Django admin coercing to Unicode: need string or buffer, tuple found
  2. Codeforces Round #486 (Div. 3)【完结】
  3. Python中经典类和新式类的区别
  4. android学习笔记之ProgressDialog的使用
  5. 宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...
  6. python 变量类型list_Python基础变量类型——List浅析-阿里云开发者社区
  7. 模式窗口(Modal Dialog) 导致 Session丢失的解决办法
  8. js格式化xml并高亮显示关键字
  9. HDU 3333-Turing Tree(BIT好题)
  10. 音频专用linux系统,适用于Linux系统的6款音频编辑软件,
  11. 符号_特殊符号大全狐狸符号加字和复制
  12. 迅速把庸才变将才的七大步
  13. 【读书】少有人走的路---自律(斯科特 派克)
  14. windows系统切换用户(通过cmd切换用户)
  15. 海康摄像头SDK二次开发错误问题解决方案(一):2. 错误号64:NET_DVR_LOADPLAYERSDKFAILED 64 载入当前目录下 Player Sdk 出错
  16. python随机函数random、画、星轨_如何使用 NVIDIA StyleGAN 生成自己的动漫(老婆)头像...
  17. 【TS TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】
  18. vue 动态视频登陆界面 简约冷淡风
  19. python保存的代码在哪里_Python保存程序
  20. 浙江大学计算机2016年推免录取名单,浙江大学2017年计算机科学与技术学院推免生名单...

热门文章

  1. python按键脚本会被检测到吗_我用前台脚本会被游戏检测到?大家进来帮我看看原因...
  2. 微信APP支付-JAVA
  3. cookie失效时间_cookie与session知识点
  4. UICC 之 USIM 详解全系列——Commands与Responses结构
  5. 本来有关技术之外的话题不属于这个板块讨论的范畴,既然说到其它方面,说说也未尝不可。
  6. php apc 502,【案例】小心,apc可能导致php-fpm罢工!
  7. Noah Mt4跟单系统制作第四篇 Mt4TradeApi做单篇
  8. 程序员北京三年买房的秘密
  9. GitHub 443: Connection Timed Out
  10. gradle 指定导出包的名字和路径