1:px

像素。一般说一个手机的分辨率为1280*720,意思就是宽度为720像素,高度为1280像素。

但是,安卓的适配不能用这种方式。

比如一个840*360的屏幕和一个1280*720的屏幕,我做了一个180px宽的布局,那么在第一个屏幕上就占据一半的宽度,在第二个屏幕上会只占据1/4的宽度。这样无法达到适配要求。

2:DPI

既然px不能作为适配的单位,所以引入了DPI的概念。(Dots Per Inch)每英寸的点数。

举例:现在规定有两个手机,尺寸一样。都是宽度为2英寸,高度为3.5英寸(瞎举的,高度咋滴都行)

第一个手机的分辨率为:840*360。也就是在2英寸的屏幕上,有360个像素点,那么每英寸的像素点就是180个。

第二个手机的分辨率为:1280*720.也就是在2英寸的屏幕上,有720个像素点,那么每英寸的像素点就是360个。

个数就是DPI

3:dp

然后引入了dp的概念,这个dp和屏幕分辨率就木有关系了,只和DPI有关系

规定是:当dpi为160时,1dp = 1px;

以此类推:当dpi为320时,1dp = 2px;

1dp = dpi/160 px;

那么,用dp来适配,

还是那两个屏幕,840*360的DPI为180,1280*720的DPI为360.现在来做一个宽为80dp的div吧

第一个屏幕:1dp = (180/160)px = 1.125px; 80dp = 90px

第二个屏幕:1dp = (360/160)px = 2.25px; ?80dp = 180px;

都是对应屏幕的1/4宽。这样也就达到了适配的目的。

4:density

这个密度的值,其实就是dpi/160的值。

诶?上面说1dp = dpi/160 px.那么,1dp = density px?

在安卓中,提供了获取density的方法

getResources().getDisplayMetrics().density

这样,也就实现了dp和px的换算

话说为啥要换算dp和px呢?

因为,xml中既可以用px,也可以用dp

但是java代码中,很多布局相关的单位都是px,比如:

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(10,20,30,40);

这里的margins的四个参数left,top,right,bottom的单位都是px,得换成dp

android鼠标dpi,对Android 中 px、DPI、dp(dip)、density的理解相关推荐

  1. Android开发之显示篇(弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系看这一篇就够了)

    版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/85165773 出自:shusheng007 ...

  2. Android中px、dp、dip、sp详解

    众所周知,Android厂商非常多,各种尺寸的Android手机.平板层出不穷.导致了Android生态环境的碎片化现象越来越严重.Google公司为了解决分辨率过多的问题,在Android 的开发文 ...

  3. 1ppi等于多少dpi_Android开发之显示篇(弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系只需这一篇)...

    概述 前段时间看了小米8的发布会,其中屏幕参数是如下介绍的: 小米8采用6.21英寸的三星AMOLED屏幕,分辨率为2248x1080,402 PPI ,纵横比是18.7:9,屏占比为86.68%,最 ...

  4. Android:长度单位详解(px、dp、sp)

    长度单位 1.重要概念 1.1 屏幕尺寸 1.2 屏幕分辨率 1.3 屏幕像素密度 1.4 屏幕尺寸.分辨率.像素密度三者关系 2.六种单位介绍 2.1.dp和px的换算 2.2.在代码中转换单位 2 ...

  5. 弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系

    基本概念: 屏幕的像素与图片的像素是一回事吗? 屏幕的分辨率和图片的分辨率是同一回事吗,分别代表什么,二者什么关系? PPI 和DPI 是一回事吗,什么关系? pt与px什么关系? Android中的 ...

  6. android this context,Android應用開發中關於this.context=context的理解

    在Android應用開發中,有的類里面需要聲明一個Context的成員變量,然后還需要在該類的構造函數中加上this.context=context;這行代碼.為什么要這么寫呢?不寫不行么? 先看下面 ...

  7. 2021年最全Android屏幕适配的度量单位px dp(dip) ppi dpi sp pt的区别(最详细,屏幕尺寸,屏幕分辨率,屏幕兼容,屏幕适配)

    0 前言 快乐李同学最新在学习Android屏幕适配相关的知识点,其中涉及到了很多Android屏幕适配相关概念和度量单位,但是快乐李同学掌握的相关知识不牢固,于是决定写出这两篇文章对这方面的知识点做 ...

  8. Android的单位px,pt,dp,sp总结和获取屏幕分辨率

    px: pixels(像素). 是屏幕中可以显示的最小单位元素,px是设备密度有关的,不同设备显示效果不同.因为由于不同的设备密度不同,密度就是单位英寸的像素不同,在不同的手机上显示的大小就不同 pt ...

  9. Android 鼠标样式修改

    Android 鼠标样式修改 Android 系统鼠标资源文件的位置: /frameworks/base/core/res/res/drawable-mdpi/drawable/pointer_arr ...

  10. android wm 改变大小,Android 屏幕适配经验总结

    本文记录一些适配问题的研究,基础概念不做过多介绍. Android在做屏幕适配的时候一般考虑两个因素:分辨率和dpi.分辨率是屏幕在横向.纵向上的像素点数总和,一般用"宽x高"的形 ...

最新文章

  1. 为什么LINKBUTTON不能插在LTEMTEMPLATE里???
  2. jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
  3. Python Django列表渲染for的使用
  4. 使用Docker虚拟化出一个Centos7操作系统(140、141机器上执行)
  5. 计算机专业比重点线高40多分,这3所211大学,超过一本线40分就可报考,性价比高,值得报考...
  6. c语言鼠标环绕特效,C语言写的鼠标有残影,急需解决方案,在线等待!
  7. 比 Windows DNS 蠕虫漏洞更严重!SharePoint 反序列化RCE漏洞详情已发布,速修复
  8. HP的.NET职位面试题
  9. 从最理想的情况论证自己的观点,必然错误,为什么明知故犯?
  10. Origin峰值拟合、重叠峰拟合
  11. 从零实现加密隧道(二):socks5 协议详解
  12. python:实现base64加密和base64解密算法(附完整源码)
  13. 三星手机和计算机如何连接打印机,三星打印机连接到电脑没反应怎么办
  14. OFDM学习笔记(六)(峰均值问题)
  15. ansible使用之——网络设备自动巡检
  16. 【转】光荣的传统,荣耀的历史,勇敢的心!
  17. PHP empty() 的判断
  18. C语言函数大全--c开头的函数
  19. 计算机软件安装注意事项
  20. 大数据技术与应用实验报告1

热门文章

  1. Linux 系统工具
  2. 孤荷凌寒自学python第八十一天学习爬取图片1
  3. sigaction函数学习
  4. linux入门教程(七) linux系统用户以及用户组管理
  5. HTML5-canvas实例:刮刮乐游戏
  6. javac环境变量配置(转)
  7. Matlab 二维线画图函数 plot 基本用法
  8. Win32 树视图控件的基本使用
  9. 浏览器开发人员工具使用初步图解
  10. 图解Windows下开发Objective-C程序之一 - 搭建Objective-C开发环境