android资源自适应的认识(一)

       我的安卓资源下有2套图,一套是640×960分辨率的放在了hdpi中,一套是480×800分辨率的放在了mdpi中,一直一来我只知道640×960分辨率图标的像素值,除以2就是我所要制定的dp大小,但不知所以然。最近我研究了研究,记录下目前的认识。

       首先,明确下android寻找对应资源的策略,安卓项目下有这么几个目录:

  • 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)

       不同的手机,会根据dpi,在对应的资源文件下找资源,如果在这个资源下找不到,那么到另外的资源的下去找。那么所以,dpi是啥,dpi是Dots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。这个就很容易理解了,他是怎么算来的呢~例如:一般我们说手机都是说的几英寸英寸,这个尺寸呢~就是是屏幕的对角线长度,而一般我们说手机是多少多少分辨率,比如320 ×480,就是总的像素点总数,那么一个3.6英寸的320 ×480分辨率的手机的dpi是多少?(320^2+480^2)^(1/2)/3.6=160,正好160,所以它首先应用这个文件夹下的资源。

       说到这需要引进一个概念:设备独立像素Density-independent pixel (dp)制定布局的时候用的单位,会进行缩放的一个单位。一个设备独立像素相当于一个160 dpi屏幕上的物理像素。所以在160dpi的屏幕上,1dp=1xp,而在240dpi的屏幕上,1dp=1.5xp。

       640×960分辨率的图片放在了hdpi中时,假设是图片大小100px×100px的。那么在布局中怎么设置大小呢,首先640×960分辨率的图片被放在了hdpi中,其实在其中时,会对图片进行压缩,压缩成480×800的分辨率hdpi标准,所以100px×100px被压缩成75px×75px的大小,而在hdpi 240dpi中,1dp=1.5xp,所以在布局中,根据图片大小设置为50dp×50dp。

你可能感兴趣的:(Android学习杂记,android,分辨率,适配,屏幕,自适应)