ipmap-[density]的位置


先看一下Android项目结构视图:是不是多了一类文件夹mipmap-[density]

多的mipmap-[density]文件夹_java

    

mipmap和drawable文件夹都是用于放置图片的。

mipmap和drawable的使用区别


mipmap和drawable文件夹都是用于放置图片的,但也有所不同。

1.将生成的图片文件置于 res/ 下的相应子目录中,系统将自动根据运行您的应用的设备的屏幕密度选取正确的文件。如下:

res/...
drawable-xhdpi
     awesomeimage.png
drawble-hdpi
     awesomeimage.png

...... 

之后,每当您引用 @drawable/awesomeimage 时,系统便会根据屏幕 dpi 选择相应的位图。

2.将您的启动器图标置于 mipmap/ 文件夹中。如下:

res/...
    mipmap
-ldpi/...
       
finished_launcher_asset.png
    mipmap
-mdpi/...
       
finished_launcher_asset.png
    mipmap
-hdpi/...
       
finished_launcher_asset.png
    mipmap
-xhdpi/...
       
finished_launcher_asset.png
    mipmap
-xxhdpi/...
       
finished_launcher_asset.png
    mipmap
-xxxhdpi/...
       
finished_launcher_asset.png

注:您应该将所有启动器图标都置于 res/mipmap-[density]/ 文件夹而非 drawable/ 文件夹内,以确保启动器应用使用最佳分辨率图标。

mipmap是啥?


mipmap是在API17中引入的图片渲染技术,来提高渲染速度和质量。

Android中,经常会对bitmap进行处理,API17中,Bitmap新增了2个方法。


voidsetHasAlpha(boolean hasAlpha)

true:标识此Bitmap包含透明的像素。

false:标识此Bitmap所有像素不透明。 

final voidsetHasMipMap(boolean hasMipMap)

给图片渲染器一个建议:当bitmap进行缩放绘制的时候,使用mipmap渲染技术。如果你知道将要绘制的图是原始尺寸得50%,打开开关设置,将获取更高的质量。注意,渲染器方面暗示它可能需要分配额外的内存来保存这个位图。

ps:这个参数的设置,可能被渲染器忽略,不保证一定执行。