android-discuss
android-discuss copied to clipboard
mipmap文件夹和drawable文件夹的区别
Mipmaps早在Android2.2+就可以用了,但是直到4.3 google才强烈建议使用。把图片放到mipmaps可以提高系统渲染图片的速度,提高图片质量,减少GPU压力。 不知道还有没其他区别。
http://stackoverflow.com/questions/23935810/mipmap-drawables-for-icons
- 它只是用来放启动图标的
- 它的好处就是,你只用放一个mipmap图标,它就会给你各种版本(比如平板,手机)的apk自动生成相应分辨率的图标,以节约空间。
@miao1007 难道不能放其他图片吗?我也像drawable一样建立不同的文件夹!
@miao1007 支持你的说法。
@liujingyuan1 官方的话说, 建议所有的图片都采用mimap 引入, 跟drawable 用法一个样, 只不过底层做了优化, 并不是只放图标
@liuchenx 嗯!知道!
@liuchenx 那请问放入Mipmaps中的图片跟放入drawable里的图片有什么不同吗?系统会在运行时优化Mipmaps中的图片?
兼容性怎么样呢?
Android Studio1.1之后创建新项目自动就生成放icon的mitmap文件夹了。 http://android-developers.blogspot.fr/2014/10/getting-your-apps-ready-for-nexus-6-and.html
thx
http://developer.android.com/tools/projects/index.html#mipmap
Make sure launcher apps show a high-resolution icon for your app by moving all densities of your launcher icons to density-specific res/mipmap/ folders (for example res/mipmap-mdpi/ and res/mipmap-xxxhdpi/). The mipmap/ folders replace the drawable/ folders for launcher icons. For xxhpdi launcher icons, be sure to add the higher resolution xxxhdpi versions of the icons to enhance the visual experience of the icons on higher resolution devices.
通过上面的文档,能读到信息就是, mipmap这个文件夹只对Launcher icon做优化。
系统对mipmap做了一些优化,加快了图片的渲染速度,提高的图片质量,减少GPU的压力。
有没有个明确的回答呢?从官方文档的介绍来看,这个文件夹只说放launcher icon会有优化。
求明确回复,我看的官方文档也是只对launcher icon优化。
mipmap文件夹下还能不能创建子文件夹?我好像创建不了。
mipmap文件夹下,仅仅建议放启动图标/app launcher icons,也就是应用安装后,会显示在桌面的那个图标。而其他的图片资源等,还是按照以前方式,放在drawable文件夹下。
我总结在: http://snowdream.github.io/blog/2016/03/02/mipmap-vs-drawable-folders/
我的做法是启动图标放在mipmap ,项目用到的图片放在drawable
如果我们应用内需要使用启动图标,改怎么放呢?一直觉得摸不着头脑,google 搞了这么一套东西出来就是为了放启动 icon?
一个文件夹就只是用来放应用启动icon的?
学习了,坚持学习!好记性不如烂笔头!
https://developer.android.com/guide/topics/resources/providing-resources.html 这链接里描述了两者的使用场景:
-
drawable/ 用于存放位图文件(.png、.9.png、.jpg、.gif)或可编译为可绘制对象资源子类型的 XML
-
mipmap/ 用于存放不同密度的 launcher icon
所以 mipmap/ 只用于存放 app icon ,就是启动图标,其余文件都应该放到 drawable/ 中。
到底是只放一个 app icon ?还是所有的图片资源都放在这里面? 谁能给出准确答案?和证明?被答案看蒙逼了。
我觉得这个只要内部有一个统一的规定就可以了,在使用上没有什么太大的差别。 我们项目目前的做法是把所有位图文件都放在 mipmap 文件夹下面,而 drawable 文件夹下面只存放 xml 编写的文件。 当然,.9.png只能存放在 drawable 中。
https://developer.android.com/about/versions/nougat/android-7.0-samples.html
看Google 针对7.0出的几个sample ,他们的图片除了图标外,其他的还是放在了drawable 文件夹。
https://developer.android.com/guide/topics/resources/providing-resources.html
根据谷歌的官方文档,位图文件和xml放在drawable里,启动器图标放在mipmap里。 具体网址如下:https://developer.android.com/guide/topics/resources/providing-resources.html。 分组资源类型,表1里介绍了res里各种资源文件夹的作用。
Android O使用mipmap里的图片资源Id作为smallIcon时会crash,并且是system ui crash,必须要重启手机才能解决。
gif图片放在mipmap无效
@SbyXlmm GIF图片请用glide加载,才能播放
mipmap 也叫 mip 贴图,是 OpenGL 中的纹理用于减少锯齿的解决方案。所以在 Android 中应该也是相同的作用。由于设备的屏幕密度很有可能会介于 xxhdpi 和 xxxhdpi 之间,这时候如果用 drawable 的资源就有可能产生锯齿。
https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 看下多级渐远纹理的概念,理解了这个概念才能知道什么情况下会有优化。