关于安卓手机的屏幕适配问题中比较重要的一环就是关于图片的屏幕适配问题.但是对于初学者来说,图片的屏幕适配问题,如果不花点时间仔细研究一下的话,还是比较难理解的.这里主要介绍一下.
先介绍一下问题的由来吧.众所周知的,安卓手机屏幕的大小种类很多,但是在底层的话,一般都是用像素,也就是px作为图片及文字的的衡量工具.这就存在一个问题,我们要做的app是适用于大多数的手机类型的app,如果只是用px的话,那就需要每款手机都要有一个对应的布局,这样加重了开发者无聊的工作. 这样我们伟大的谷哥大哥就推出了dp这个东西来解决这一问题.
要明白dp的意思,还需要明白一个概念,那就是dpi dpi是什么意思呢 先解释一下英寸的概念 英寸的概念就是一个长度单位,和厘米,米一样,只不过是人欧美的长度单位 谁叫这个是安卓是美国人创始的呢
接下来解释dpi概念,dpi的概念是屏幕像素密度是指每英寸上的像素点数,单位是dpi. 这句话啥意思呢,说实在的我也是从别的博客里面粘过来的,要背谁能记住. 其实 很好理解,把dpi这个概念把理解成压强.压强的定义是啥 初中物理课本上讲的是 单位面积上的所受的力就叫压强. 这个单位面积就是每一寸 这个力就是像素点.这样就明白了许多 ,或者比喻成密度也行,,,密度就是单位体积上的质量大小就叫密度.
概念解释清楚了,接下来就是研究一下图像的问题.引用上面的东西 你想啊 这个图片 它的dpi 也就是每英寸上的像素点数不一样, 把这个图像根据其dpi分为几个类别. ldpi,mdpi,hdpi,xhdpi,xxhdpi
那么如何区分呢?Google官方指定按照下列标准进行区分:
名称 | 像素密度范围 |
---|---|
mdpi | 120dpi~160dpi |
hdpi | 160dpi~240dpi |
xhdpi | 240dpi~320dpi |
xxhdpi | 320dpi~480dpi |
xxxhdpi | 480dpi~640dpi |
就根据这几个类,把不一样的图片放在不一样的文件下
这是Android-eclilpse的文件包,你看它图片到底是种就放在哪个里面.如果是stadio的用户,你考入一个图片的时候,是不是会发现,图片后边会有hdpi,xhdpi..这样的字样.骚年们是不是感觉studio很贴心,直接的就给放在哪个包里边了.大爱studio.
接下来讲解dp....dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素. 这个概念吧,我也是从网上找的.这是什么玩儿,看不懂 ,我也看不懂.自己研究呗. dp的意思其实就是说,这个单位量于密度无关.这句话怎么理解呢.理解成1dp可以是1dp=1px,也可以是1dp=2px..1dp=1.5px 这个怎么算1dp到底是等于多少px呢.这个问题就和机型有关了 你得看看这个手机的像素密度到底是多少,才能知道1dp等于多少px.
如果手机的像素密度是160dpi的话,1dp=1px 这是规定,老祖宗定下的约定 . 接下来 就是240dpi的话 1dp=1.5px .这个东西怎么算的 其实就是小学算术,就怕你不理解. 像素密度240/160=1.5 240dpi是160dpi手机的1.5倍 单位长度上所含的像素点也是1.5倍 而这个单位长度呢 就是dp 这样能理解了把.接下来就是320dpi 1dp=2px 480dpi 1dp=3px
640dpi 1dp=4px
240dpi 1dp=1.5px
320dpi 1dp=2px
480dpi 1dp=3px
640dpi 1dp=4px
这个的比例是2:3:4:6:8 安卓有一点好处,就是都能对应上 是不是对应上了图片存放位置的范围的每个范围的最大值160 240 320 480 640. 所以 有的时候人们说道像素密度xhdpi的时候,就是再说320dpi 就是1dp=2px
接下来还有一个问题,就是说很多图片,同样的名字,为什么会有2份 甚至有3份
,为嘛这样,笨啊,但是是为解决屏幕适配问题啊.xhdpi的手机就去找图beauty1.png(xhdpi) ,,xxhdpi的就去找beauty1.png(xhdpi) 懂了没
还有个问题就是720p的图 或者人家直接说720的图,你立马懵逼了.
人说的是这个意思
最后出个问题,解决了就算明白了
240dpi hdpi1dp=1.5px
320dpi xdpi1dp=2px
480dpi xxhdpi1dp=3px
640dpi xxxhdpi 1dp=4px
50