首先弄明白三个概念

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. android EnMicroMsg.db安卓微信数据库获得密码的源码
  2. 评分卡建模—拒绝推断
  3. cocos2d-x初探学习笔记(14)--菜单项
  4. JDK14的新特性:Lombok的终结者record
  5. php signature解密,openssl RSA非对称加密、解密、签名、验签
  6. python 整数输出 d f_pythn print格式化输出---------%s 和 % d 都是什么意思?
  7. java json和对象互相装换
  8. 如何设置win7系统分辨率
  9. 全国土壤阳离子交换量CEC空间分布数据
  10. 如何将Java Web项目部署到服务器上
  11. coreldraw x8里线段显示尺寸_cdr工具使用技巧与方法,教你CorelDRAW X8图框精确剪裁使用方法...
  12. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  13. 2019大裁员!年关将至,最高裁员比例竟达90%?
  14. idea关闭自动更新
  15. 【Practical】决策系统与粗糙集
  16. GridView列标题设置颜色
  17. 【Unity3D自学记录】代码获取隐藏游戏对象
  18. Socket 和 ServerSocket
  19. OA系统请假,出差等流程审批解析
  20. echart地图隐藏南海诸岛

热门文章

  1. 并发与多线程之线程安全篇
  2. ARM 软中断指令SWI
  3. 豆瓣爬虫TOP250
  4. 重构——34分解条件表达式(Decompose Conditional)
  5. # 腾讯数据库TcaplusDB十年厚积薄发,已是参天大树
  6. RIM周霖:移植Android应用到BB10非常简单
  7. 2021年中国线性CMOS图像传感器市场趋势报告、技术动态创新及2027年市场预测
  8. 五子棋java_java简易五子棋
  9. 退休账户解决方案提供商Bitira为多币种IRA增投保险
  10. r语言中残差与回归值的残差图_R语言-如何处理回归中的异常值点