这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
而drawable-xdpi要求的显示要比drawable-hdpi高一个层次,
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
手机先根据当前分辨率选择最近的一个文件夹读取,比如你可以把1080P放在hdpi中,那么高分辨率手机先读hdpi这里面的,没有就找mdpi,依次类推。最后会去drawable文件夹找。但是图片不推荐放到drawable文件夹,否则很容易出现out of memory的错误。一般只会放些几kb的图片。
大图片放drawable文件夹导致的错误
我用ViewFlipper展示的几张滑动图片都是放到drawable文件夹,结果出现下面的错误:
android.view.InflateException: Binary XML file line #33: Error inflating class <unknown>和out of memory
浪费了我不少时间都没解决。最后的解决方法:将这些图片放到drawable-hdpi文件夹里面。