分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280
屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点。dpi计算公式:dpi=对角线的像素值/尺寸
px:长度单位,以具体像素为单位
dp:长度单位,与具体屏幕密度无关,显示的时候根据具体平台屏幕密度的不同最终转换为相应的像素长度,具体转换规则是: 1dp = (目标屏幕密度/标准密度)*px,标准密度为160dpi,例如,1dp长度在密度为160dpi的平台表示一个像素的长度,而在240dpi的平台则表示1.5个像素的长度
屏幕尺寸:屏幕的大小,通常用屏幕对角线的长度表示
1.drawable-(hdpi,mdpi,ldpi)的区别 dpi是“dot per inch”的缩写,每英寸像素数。 四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high) 一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
2.WVGA,HVGA,QVGA的区别 VGA是“Video Graphics Array”,显示标准为640*480。 WVGA(Wide VGA)分辨率为480*800 HVGA(Half VGA)即VGA的一半分辨率为320*480 QVGA(Quarter VGA)即VGA非四分之一分辨率为240*320。
3.drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的联系 hdpi里面主要放高分辨率的图片,如WVGA (480×800),FWVGA (480×854) mdpi里面主要放中等分辨率的图片,如HVGA (320×480) ldpi里面主要放低分辨率的图片,如QVGA (240×320) 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
4.手机屏幕分辨率和屏幕密度是两码事,并不是800*480的分辨率手机图片就应该放在hdpi文件夹中。5.0英寸 800*480属于mdpi。也可以通过代码获取:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
5.系统在得到图片时候,会先到设备对应的dpi的文件夹下去去找资源文件,找到后应该不会做缩放直接返回图片。如果没有在对应的dpi文件夹中找到,回去其他文件夹中查找,找到后会做相应的缩放。在高dpi找到的图片会缩放,在低dpi的会拉伸。目前大多数应用都是提供了一套hdpi的图,andorid根据手机屏幕的大小是会做自动适配的。