Android 使用dip单位进行布局的一点知识

先看看怎么算出一个设备的dpi, 其实就是算出对角线上有多少个px,之后除上屏幕尺寸。比如,1280*720 的10.1寸设备,dpi = (sqrt(1280*1280+720*720))  / 10.1

再来看看dip,device independent pixels(设备独立像素),在屏幕密度为160的显示屏上,1dip=1px,那么,其实1dip就是 1/160英寸(1英寸 = 2.54cm)。所以,在320dpi的屏幕上,一英寸有320个px,那么1dp就是2个px了。

因此,dp只能保证控件在度量上基本一致,但是并不会保证和屏幕的比例一致!比如,有一个5英寸320dpi的设备 和一个 10英寸320dpi的设备,他们同时现实一个100dp高的控件,那么在5寸设备上,这个控件占屏幕的比例要远大于10英寸上的控件比例,因此,效果看起来很不一样。如果想成比例,就需要用到在layout文件中用weight参数或者用代码计算。

一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

原文地址:https://www.cnblogs.com/breezemist/p/3413817.html