Android 基本常识
问题一:dp,px ,sp,dip的区别?
sp:android 开发中通常表示字体大小。
dip:设备独立像素,不同设备有不同的显示效果,与屏幕密度有关,而屏幕密度又和设备硬件有关,在某种条件下 ,比如屏幕密度为160,那么1dip = 1px。那如果你的屏幕密度不变而屏幕分辨率变大,就会出现图像变小。
注:屏幕密度:在屏幕密度中,HVGA屏的密度为160,QVGA屏的密度为120,WVGA屏的密度为240,WQVGA屏的密度为120。其中密度值表示每英寸有多少个显示点和屏幕分辨率是两个概念。HVGA,WVGA这些都是影像画质的标准。
dip与px的换算: dip(value)=(int) (px(value)/1.5 + 0.5)
dp:和dip是一样的。
px:我们通常说的手机分辨率比如小米4 是 1920 x 1080 那单位就是px,如果你把手机屏幕放大到一定程度,会看到密密麻麻的小正方形格子,竖列有1920个横列有1080个,这个单位是绝对的,不同的设备不同的显示屏显示效果是相同的.
补充:屏幕尺寸也就是手机大小,如苹果iPhone6 Plus 配备5.5 英寸屏幕.
当然dp和px也是有换算关系的:
如下图,注:此图是之前查看别人的博客时截取的,已忘记出处,还望见谅。
问题二:Drawable和Drawable-dip 和 mipmap-dpi关系与区别?
Drawable和Drawable-dip区别?
刚开始用eclipse开发anroid的时候只有Drawable文件和Drawable-dip文件,
Drawable文件是用来存放.xml文件的如:背景选择器 <Select></Select>,<Shape></Shape>等文件。
Drawable-ldpi和Drawable-mdip等是用来存放图片资源的。
drawable-dip和mipmap-dpi区别?
在之后转为Studio开发之后才出现了mipmap-dpi文件夹,其实mipmap文件夹和drawable文件夹一样都可以放图片资源。但习惯上,大部分程序员在开发的时候选择,在mipmap中存放应用图标,手动创建drawable-mipmap文件夹存放不同密度的照片。
drawable-dip和mipmap-dpi没有本质区别。
那么如何将图片正确存放到不同的drawable 和 mipmap文件夹下呢?
ldpi: 屏幕密度为120的手机设备
mdpi: 屏幕密度为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)
hdpi: 屏幕密度为240的手机设备
xhdpi: 屏幕密度为320的手机设备
xxhdpi:屏幕密度为480的手机设备
如果是320x240的切图,则应该放在drawable-ldpi目录下。
如果是480x320的切图,则应该放在drawable-mdpi目录下。
如果是800x480的切图,则应该放入drawable-hdpi目录下,
如果是1280x720的切图,则应该放在drawable-xhdpi目录下。
如果是1920x1280的切图,则应该放在drawable-xxdpi目录下。
android手机先根据当前分辨率选择最近的一个文件夹读取,比如你可以把1080P放在hdpi中,那么高分辨率手机先读hdpi这里面的,没有就找mdpi,依次类推。最后会去drawable文件夹找,但是图片不推荐放到drawable文件夹,否则很容易出现out of memory的错误。建议一一对应。