关于安卓屏幕适配尤其是drawable文件夹问题,当然网上有很多资料,但是我感觉有些人回答的问题都是不知所云,但是经过广泛搜集资料以及对比查找我在以下做出一些总结,让自己也能有个记录。方便回忆。
屏幕尺寸:常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0 等
屏幕分辨率:屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。
分辨率不是dpi
手机常见分辨率:
VGA 640*480 (Video Graphics Array)
QVGA 320*240 (Quarter VGA)
HVGA 480*320 (Half-size VGA)
SVGA 800*600 (Super VGA)
WVGA 800*480 (Wide VGA)
FWVGA 854*480 (Full Wide VGA)
HD 920*1080 High Definition
QHD
720p 1280*720
1080p
然后我们就要了解dpi,这个是决定屏幕显示是否清楚的决定性因素,而且我在查找资料过程中发现很多人把dpi和ppi弄混,下面是两者区别,
DPI用来表示输出设备的输出精度,如打印机,显示器
DPI表示的是 像点/英寸(每英寸长度上有多少个打印点或像点)
PPI用来表示输入设备的输入精度,如扫描仪,数码相机
PPI表示的是 像素/英寸(每英寸长度上有多少个像素)
下面计算dpi计算方法例如屏幕960*640 屏幕4.0则dpi=根号(960^2+640^2)再除以4.0 =288.444102037
得到dpi之后我们再来找到对应的属于哪类dpi,下面是谷歌官方的
名称 | 像素密度范围 |
mdpi | 120dpi~160dpi |
hdpi | 160dpi~240dpi |
xhdpi | 240dpi~320dpi |
xxhdpi | 320dpi~480dpi |
xxxhdpi | 480dpi~640dpi |
手机先根据当前分辨率选择最近的一个文件夹读取,
比如手机dpi为240,那么高分辨率手机先读drawable-hdpi这里面的,没有就找mdpi,依次类推。
下面说一下图标对应的文件夹
屏幕密度 图标尺寸
mdpi 48x48px
hdpi 72x72px
xhdpi 96x96px
xxhdpi 144x144px
xxxhdpi 192x192px
在设计图标时,对于五种主流的像素密度(MDPI、HDPI、XHDPI、XXHDPI 和 XXXHDPI)
应按照 2:3:4:6:8 的比例进行缩放。例如,一个启动图标的尺寸为48x48 dp,这表示在 MDPI 的屏幕上其实际尺寸应为 48x48 px,
在 HDPI 的屏幕上其实际大小是 MDPI 的 1.5 倍 (72x72 px),在 XDPI 的屏幕上其实际大小是 MDPI 的 2 倍 (96x96 px),依此类推。
关于切图。
关于切图有几个建议:
第一,长宽最好是3的倍数(根据android的推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公约数)。
第二,长宽最好是偶数。因为奇数在进行等比压缩的时候可能有问题。
第三,根据上面两条,如果长宽是6的倍数最理想。
480*800切下来的图我们放在drawable-hdpi目录下,按照2:3放大的图标放在drawable-xhdpi目录下,按照2倍放大的图标放在drawable-xxhdpi目录下。