声明:我是以2.0的代码为参考的,主要参考了BitmapFactory.java文件。
首先,在2.0应用中,res下有drawable-hdpi、drawable-mdpi、drawable-ldpi三个存放图片的文件夹,查资料看到如下描述:
这是分辨率的不同,H是高分辨率 M是中 L是低。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
开始不太理解,所以,看完代码后,先做了个实验,在三个文件夹下分别放入图片,通过下面的测试代码:
private int getTargetDensityByResource(Resources resources, int id) {
TypedValue value = new TypedValue();
resources.openRawResource(id, value);
Log.d("LuoYer", "value.density: " + value.density);
return value.dens