Android-布局单位以及布局详细说明

概念:

dp(dip): device independent pixels(设备独立像素)

dip,就是把屏幕的高分成480分,宽分成320分。比如你做一条160dip的横线,无论你在320还480的模拟器上,都是一半屏的长度

上面的理解是错的,整个屏幕所拥有的dp是由px和dpi这两个硬件参数共同决定。

dp=px*160/dpi(由px=dpi/160*dp推出)


px:pixel(像素)

由手机硬件决定。


dpi:dot per inch每英寸像素

由手机硬件决定。

dpi=ppi=(√(横向分辨率^2+纵向分辨率^2))/屏幕尺寸)

计算了一下小米手机屏幕的PPI,4.0英寸、分辨率854X480,PPI(DPI)

  =√(854^2+480^2)/4=244.912……≈245.


sp:scaled pixels(放大像素),主要用于字体显示。


 pt:point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业。

 

布局参考表格:

布局单位参考表
  全屏像素            常规DPI          横屏dp        

竖屏dp           

mdpi           480*320 160dpi 320dp

480dp

ldpi 800*480 240dpi 320dp

533dp

xldpi 1280*720 320dpi 360dp

640dp

 

 

 

 

 

 

 

 

如果想设置布局占半个横屏,就可以在mdpi,ldpi设置为160dp。然后在xldpi设置为180dp。

 

SDK影响布局:

   通常我们开发在XML布局里用到dp,但dp是受到两个硬件参数影响的,因此设置dp也可能引起不同设备的布局错位!

  需要注意的是:我所使用的开发机为nexus3(1280*720、320dpi),项目设置为2.2时,它是以hdpi的模式运行。项目设置为2.2兼容4.1时,它是以xhdpi的模式运行。也就是说:在相同布局,相同设备的情况下,项目设置不同的SDK运行的可视布局也不一样!

 普通的2.2与 加上以下代码的2.2 进行对比:

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />

 

如何以相对位置进行布局:

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=173973

 

注:博客文章为本人原创,转载请标明出处为本人博客。http://www.cnblogs.com/TseChiHoi/

posted @ 2012-11-05 12:14  VinceXie  阅读(2421)  评论(0编辑  收藏  举报