px
pixel的缩写,意为像素,屏幕上的点,通常说的分辨率480*800就是指的像素。 像素是用来计算数码影像的最小单位,均为整数
in
表示英寸,一英寸等于2.54厘米。手机屏幕5(英)寸,就是指屏幕的对角线长度,5*2.54=11.2厘米
dpi
是Dots Per Inch 的缩写,每英寸点数,即每英寸包含的像素个数。比如320*480分辨率的手机,宽2英寸,高3英寸,dpi就等于320/2或者480/3=160dpi。160就是这个手机的dpi
density
屏幕密度,density和dpi的关系是density = dpi/160
dp
即dip,设备独立像素,device independent pixels的缩写,Android特有的单位,dpi = 160 的屏幕上,1dp = 1px
sp
和dp类似,一般用来设置字体大小,可以根据用户的字体大小偏好来缩放
ANDROID Drawable
-
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)
Android sdk'会自动屏幕尺寸选择对应的资源文件进行渲染, 如sdk检测到手机dpi为160的话就会优先到drawable-mdpi文件夹中寻找对应图片资源。但只在xhdpi中有对应的图片资源程序一样可以运行。所以理论上只需提供一种规格的图片资源就可以,如果只提供ldpi规格的图片,大分辨路手机会不清晰,所以需要提供一套需要支持的最大dpi图片,这样即使分辨率小,图片缩小以后依然很清晰。
目前手机市场分辨率集中在720*1080,所以xhdpi在目前来讲是最好的选择。
假如统一使用了xhdpi资源,使用wrap_content 属性时,Android会自动为其他规格dpi屏幕适配,比如在xhdpi中放入120*120px的图片,那么在hdpi屏幕上显示的只有120/2*1.5=90px大小。可以适配。
在xhdpi中放入120*120的图片,宽高直接除以density就得出dp数值,所以wrap_content属性和60dp效果是一样的
版权声明:本文为 stormzhang 原创文章,可以随意转载,但必须在明确位置注明出处!!!

644

被折叠的 条评论
为什么被折叠?



