android初学者都会对密度,分辨率,dp,dpi等等混淆,今天来好好捋一捋这剪不断理还乱的江湖关系!

废话不多说,直入主题。

in:英寸inch,物理尺寸,1in =2.54厘米(cm)。4.2寸手机等等就是这个in,通常说的手机4.2寸,都是手机对角线4.2in。

dpi:这个知道英文名有助于理解意义,its english name is:  Dots Per Inch.每英寸的点数嘛,每英寸的像素个数。例如:320X480分辨率的手机,宽2in,高3in,那么每英寸像素点个数(dpi)是:320/2=160.使用正方形像素点横纵向计算结果一样,一般是计算对角线。

density:这个搅屎棍极具混淆作用,这货是屏幕密度,屏幕密度density和dpi的关系是density = dpi/160,协议规范。这个是对dpi的一个规范,160dpi就是密度为1的意思。

dp:主角闪亮登场,也就是dip,设备独立像素,device independent pixels的简写,android特有,在屏幕密度为1也就是dpi=160的屏幕,1dp = 1px。这是规范。

sp:和dp类似,用来设置字体,和dp不同的是它可以自动根据用户的字体大小偏好来缩放,比如说你字体用的sp,用户系统设置字体偏好是偏大,那么sp会相应放大字体,而如果你用dp,则不会放大。

px:pixel,像素,屏幕上的点,是数码设备最小的独立显示单位,px均是整数,分辨率480X800就是,像素点个数。

说到这里,问题来了,一个图片加载到内存的话占用多大空间呢?一个32位的图分辨率是1280*768,所占内存大小:(1280*768*(32/8))/(1024*1024) = 3.75MB    像素点数*一个像素点所占用的byte数,32位图表示一个像素占用32个bit位,也就是4byte。

一个bitmap,是分辨率是1024*1024,要是32位的大小就是32/8=4m。

适配的时候drawable级别:android会根据屏幕尺寸自动选择相应资源文件进行渲染,sdk检测到你的手机dpi是160的话,优先去drawable-mdpi下找相应图片资源,找不到会区别的文件夹找,并根据density做相应缩放。比如dpi

=160的设备,wrap-content设置资源,在mdpi没找到图片,从xhdpi找到了,240X240px的图片,240会除以2乘以1得到120px

drawable-ldpi (dpi=120, density=0.75)

drawable-mdpi (dpi=160, density=1)

drawable-hdpi (dpi=240, density=1.5)

drawable-xhdpi (dpi=320, density=2)

drawable-xxhdpi (dpi=480, density=3)

屏幕适配,彻底理解dp,dpi,屏幕密度,分辨率之间的爱恨纠葛相关推荐

  1. 【Android 屏幕适配】屏幕适配基础概念 ② ( 像素 px 与 密度无关像素 dip | 像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 )

    文章目录 一.像素 px 与 密度无关像素 dip 二.像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 ...

  2. android屏幕适配的目的,剖析Android屏幕适配及各方案

    最近陆陆续续被一些android屏幕适配的文章刷屏了,我发现有些问题在看别人写的文章时候还是比较不容易理解的,在这里我们把这些东西捋一捋,来讲讲android屏幕适配的原理,还有之前用过的屏幕适配框架 ...

  3. android多屏幕适配资源生成,android – 多屏幕适配相关

    1.基本概念 屏幕大小(screen size) – 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸).android把屏幕分为以下4种:small,normal,large,extr ...

  4. android 屏幕适配dimens,关于android:安卓屏幕适配一键生成dimens文件

    工具类 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.Pr ...

  5. android学习笔记---49_屏幕适配,根据不同手机屏幕大小适配软件界面

    2013/5/12 49_屏幕适配 ----------------------- 1.根据手机屏幕的大小自动显示软件界面的大小 2.这里用480x320和320x240这两种屏幕大小举例. ---- ...

  6. 摩客怎么设置安卓的dp_Android屏幕适配之单位DP

    基本概念 名词概念 名称 解释 px 像素点,一个像素点为1px dp 即dip,像素密度 sp 同dp,但是可以根据系统字体偏好缩放 dpi 每英寸的像素数,也叫做屏幕密度 换算关系 根据换算关系: ...

  7. 屏幕适配--修改系统density进行屏幕适配

    上次发了自定义像素适配后,有小伙伴问我修改density到底是怎么做的.遇到这个问题,我是懒得写一篇博客来说明的,但是当我准备搜一篇发链接给他时,看到好多博客写的并不完整或者看不明白,所以我就自己写吧 ...

  8. 关于Android获取屏幕宽高、dp、sp、px之间的转化

    开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp. 这几个计量单位之间,是有关 ...

  9. Android 屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)、密度无关像素(dp/dip)、屏幕适配

    1. dp , dpi , px 关系 (假设已经熟悉了基本概念,也可以参考最后的链接)  2. 运行时dp 如何转换成 px  3.  使用dp 和 px 设计结果比较 参考: Android屏幕适 ...

最新文章

  1. mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法
  2. 极光推送指定用户推送_App用户都睡着了?是时候用推送和活动唤醒一波了!
  3. Shut Down(or Closing) Your Windows and Open The Unix
  4. 视图数据共享之SESSION/CACHE
  5. 20145234黄斐《网络对抗技术》实验六-信息搜集与漏洞扫描
  6. 分区助手合并移动硬盘分区后,无法访问的解决方法
  7. 三宝小精灵机器人_三宝小精灵机器人
  8. 新手必看:PS修图的基本步骤
  9. 【生活日记】最近心态不好啊,沉不住气
  10. 什么是超图(Hypergraph)网络?
  11. 单号自动识别查询 支持一键复制导出
  12. anti-wrinkle_Anti-wrinkle是什么意思
  13. 如何做好数据全生命周期管理,从哪几个方面做?_光点科技
  14. 什么是微分?导数和微分的区别是什么?微分和积分的联系?
  15. excel多表合并为一个表
  16. 有钱人的4种思维,掌握一种,就够翻身了
  17. Jquery遍历对象
  18. R语言的digamma、gamma、dgamma与norm函数对应python函数包的问题
  19. 证明雅可比式(图文详解)
  20. matlab求半衰期,如何使用GLD和GDX价差来估计均值回归的半衰期

热门文章

  1. 北京工业大学微型计算机接口技术考试,汇编语言微机原理及接口技术期末试卷含答案.doc...
  2. 【STM32H7教程】第85章 STM32H7的SPI 总线应用之SPI Flash的STM32CubeProg下载算法制作
  3. 【纯python/pygame大型游戏开发】仙剑奇侠传二战棋版
  4. 被迫浏览“H”网,发现了赚钱套路
  5. 蛋疼的Mplayer安装(CentOS 6.5)
  6. 你不知道的JavaScript--Item5 全局变量
  7. centos7.x 查看端口占用情况方法
  8. java Field.canAccess 和 Field.isAccessible
  9. 设置个性的windows XP开机音乐
  10. 虹科分享 | 带您了解太赫兹成像技术及系统方案