屏幕适配,彻底理解dp,dpi,屏幕密度,分辨率之间的爱恨纠葛
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,屏幕密度,分辨率之间的爱恨纠葛相关推荐
- 【Android 屏幕适配】屏幕适配基础概念 ② ( 像素 px 与 密度无关像素 dip | 像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 )
文章目录 一.像素 px 与 密度无关像素 dip 二.像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 ...
- android屏幕适配的目的,剖析Android屏幕适配及各方案
最近陆陆续续被一些android屏幕适配的文章刷屏了,我发现有些问题在看别人写的文章时候还是比较不容易理解的,在这里我们把这些东西捋一捋,来讲讲android屏幕适配的原理,还有之前用过的屏幕适配框架 ...
- android多屏幕适配资源生成,android – 多屏幕适配相关
1.基本概念 屏幕大小(screen size) – 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸).android把屏幕分为以下4种:small,normal,large,extr ...
- android 屏幕适配dimens,关于android:安卓屏幕适配一键生成dimens文件
工具类 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.Pr ...
- android学习笔记---49_屏幕适配,根据不同手机屏幕大小适配软件界面
2013/5/12 49_屏幕适配 ----------------------- 1.根据手机屏幕的大小自动显示软件界面的大小 2.这里用480x320和320x240这两种屏幕大小举例. ---- ...
- 摩客怎么设置安卓的dp_Android屏幕适配之单位DP
基本概念 名词概念 名称 解释 px 像素点,一个像素点为1px dp 即dip,像素密度 sp 同dp,但是可以根据系统字体偏好缩放 dpi 每英寸的像素数,也叫做屏幕密度 换算关系 根据换算关系: ...
- 屏幕适配--修改系统density进行屏幕适配
上次发了自定义像素适配后,有小伙伴问我修改density到底是怎么做的.遇到这个问题,我是懒得写一篇博客来说明的,但是当我准备搜一篇发链接给他时,看到好多博客写的并不完整或者看不明白,所以我就自己写吧 ...
- 关于Android获取屏幕宽高、dp、sp、px之间的转化
开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp. 这几个计量单位之间,是有关 ...
- Android 屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)、密度无关像素(dp/dip)、屏幕适配
1. dp , dpi , px 关系 (假设已经熟悉了基本概念,也可以参考最后的链接) 2. 运行时dp 如何转换成 px 3. 使用dp 和 px 设计结果比较 参考: Android屏幕适 ...
最新文章
- mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法
- 极光推送指定用户推送_App用户都睡着了?是时候用推送和活动唤醒一波了!
- Shut Down(or Closing) Your Windows and Open The Unix
- 视图数据共享之SESSION/CACHE
- 20145234黄斐《网络对抗技术》实验六-信息搜集与漏洞扫描
- 分区助手合并移动硬盘分区后,无法访问的解决方法
- 三宝小精灵机器人_三宝小精灵机器人
- 新手必看:PS修图的基本步骤
- 【生活日记】最近心态不好啊,沉不住气
- 什么是超图(Hypergraph)网络?
- 单号自动识别查询 支持一键复制导出
- anti-wrinkle_Anti-wrinkle是什么意思
- 如何做好数据全生命周期管理,从哪几个方面做?_光点科技
- 什么是微分?导数和微分的区别是什么?微分和积分的联系?
- excel多表合并为一个表
- 有钱人的4种思维,掌握一种,就够翻身了
- Jquery遍历对象
- R语言的digamma、gamma、dgamma与norm函数对应python函数包的问题
- 证明雅可比式(图文详解)
- matlab求半衰期,如何使用GLD和GDX价差来估计均值回归的半衰期
热门文章
- 北京工业大学微型计算机接口技术考试,汇编语言微机原理及接口技术期末试卷含答案.doc...
- 【STM32H7教程】第85章 STM32H7的SPI 总线应用之SPI Flash的STM32CubeProg下载算法制作
- 【纯python/pygame大型游戏开发】仙剑奇侠传二战棋版
- 被迫浏览“H”网,发现了赚钱套路
- 蛋疼的Mplayer安装(CentOS 6.5)
- 你不知道的JavaScript--Item5 全局变量
- centos7.x 查看端口占用情况方法
- java Field.canAccess 和 Field.isAccessible
- 设置个性的windows XP开机音乐
- 虹科分享 | 带您了解太赫兹成像技术及系统方案