`

mipmap-xxx

阅读更多
最近在看AOSP,发现mipmaps, 百度 了一下,发现有各种说法,最后还是google出来的比较正确。

引用官方文档中:
http://developer.android.com/tools/projects/index.html#mipmap

[size=medium]Managing Launcher Icons as mipmap Resources[/size]

Different home screen launcher apps on different devices show app launcher icons at various resolutions. When app resource optimization techniques remove resources for unused screen densities, launcher icons can wind up looking fuzzy because the launcher app has to upscale a lower-resolution icon for display. To avoid these display issues, apps should use the mipmap/ resource folders for launcher icons. The Android system preserves these resources regardless of density stripping, and ensures that launcher apps can pick icons with the best resolution for display.

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.

Note: Even if you build a single APK for all devices, it is still best practice to move your launcher icons to the mipmap/ folders.

这里面有说到app resource optimization techniques remove resources for unused screen densities 这句是重点,说 app资源优化技术会将不需要的解析度的屏幕的资源移除掉,这样 Launcher App会使用低密度的 icon放大显示而导致了 icon 模糊。如果把icon放到mipmap/ folders 所有all densities 的都会被保留,这样匹配的时候会用高密度的 icon去缩小显示,这样就避免了模糊。

这里提到到app resource optimization techniques,我还没有搜索到相关信息。

有一篇文章说明了mipmap的历史:
https://androidbycode.wordpress.com/2015/02/14/goodbye-launcher-drawables-hello-mipmaps/

Why use mipmaps for your launcher icons?

Using mipmaps for your launcher icon is described as best practice by the Android team. The advantage you get is that you can keep resources in the mipmap folders for all device densities and then strip out other resources from the drawable folders that are not relevant to the specific users device density.

Here is an example, say a user has a device that is classified as xxhdpi. The drawable resources in your apk for all other densities, such as xxxhdpi, are not required and can be stripped out. The launcher icon is different to other resources as it is possible that a higher resolution icon is displayed in the users launcher. If that higher resolution image has been stripped from your drawables folder, then a lower density icon will programmatically be up-scaled. This may cause an unattractive blurry icon.

You may not be producing multiple apk files with stripped out resources to minimize apk size yet. Therefore making the change to mipmaps for your launcher icon will currently not make any difference. That does not mean you should not do it. The best reason for using mipmaps folder is that the Android team want you to and describe it as best practice. They know what new features are in the pipeline for Android and who knows, but maybe they are planning to introduce a new feature where unused resources are automatically stripped for the user when they download apps.

History of launcher mipmaps in Android

The mipmaps resource folders in Android started appearing long before they were introduced to the wider Android development community to use, which started in Android Jelly Bean 4.3. Very little official information came from the Android team about why to use them. Around the time of the release of 4.3, Android framework developer @hackbod announced:

    …if you are building different versions of your app for different densities, you should know about the “mipmap” resource directory.  This is exactly like “drawable” resources, except it does not participate in density stripping when creating the different apk targets.

Since that time if you have taken a close look at the apps produced out of Google you will notice that some apps were doing exactly that.  Shipping only the required density but including all densities in the mipmap folders for the launcher icons.

As time went on still there was not much noise out of the Android team about using launcher mipmaps, that was until Lollipop hit AOSP and the new Nexus devices hit the market.  The Android Developers blog posted about preparing your apps for the new Nexus 6 and 9.  This detailed a compelling reason you should use mipmap folders for your app icon and announced the shift of best practice to using mipmaps:

    …Provide at least an xxxhdpi app icon because devices can display large app icons on the launcher. It’s best practice to place your app icons in mipmap- folders (not the drawable- folders) because they are used at resolutions different from the device’s current density. For example, an xxxhdpi app icon can be used on the launcher for an xxhdpi device.

分享到:
评论

相关推荐

    Android Studio 3.0中mipmap-anydpi-v26是什么东东

    在Android Studio 3.0中一旦我们创建了一个项目,一个名为mipmap-anydpi-v26自动创建的文件夹在res文件夹下。它究竟能干什么?为什么我们需要这个?我们在开发时该如何利用它,下面通过本文给大家介绍下

    android studio 关于把图片放在mipmap中的问题

    今天写项目的时候试着把图片放在了mipmap-mdpi文件中。如果你问你的项目没有mipmap文件夹,只有mipmap,那么请看图   我想现在你应该明白了。 —————— 扯回正题: 当你把图片放在mipmap文件之后,首先要修改的...

    Android icon适配mipmap

    mipmap-ldpi 36*36 px 四周留出1个像素用于填充(无底色) mipmap-mdpi 48*48 px 四周留出1个像素用于填充(无底色) mipmap-hdpi 72*72 px 四周留出2个像素用于填充(无底色 mipmap-xhdpi 96*96 px 四周留出4个像素...

    Android原生方式实现夜间模式

    Android原生方式实现程序夜间模式,相应文档地址: http://blog.csdn.net/qq_23383563/article/details/52493320

    AndroidLauncherIconResizer:快速将图像大小从URL或文件调整为与Android兼容的Mipmap可绘制启动器图标,以适应各种屏幕密度

    快速将图像大小从URL或文件调整为与Android兼容的Mipmap可绘制启动器图标,以适应各种屏幕密度 用法 source venv/bin/activate pip install -r requirements.txt 然后,要使用该脚本,您可以从URL抓取图像: ...

    Unity调用网页页面Embedded Browser插件

    Features - Render sites to 2D or 3D objects - Chromium backend;... - Call JavaScript1 from Unity - Call Unity from JavaScript1 ... - Mipmap-emulation shader: faster texture updates without sparkles -

    Android应用图标 3配色 包含所有分辨率 可商用

    包含所有分辨率,有mipmap-hdpi-mhdpi-xhdpi-xxhdpi-xxxhdpi。 这个图标适合用于现代科技产品或服务中。 例如: 应用程序图标:在移动设备或电脑上作为某个软件或工具的标识。 品牌标志:作为公司、组织或产品的...

    Android代码-piggybudget

    [[./android/app/src/main/res/mipmap-mdpi/ic_launcher.png]] piggybudget - easily manage your pocket money ** What is it, in bullet points? It’s a tiny app that I wrote for myself to keep track of my...

    Android平台OpenGLES生成使用Mipmap纹理

    该案例代码为Android 平台OpenGL ES实现举例,有两个作用: ...2、使用 OpenGLES 生成与使用Mipmap纹理,构建远处模糊,近处清晰的效果。 具体案例文章讲解请见: https://xiaxl.blog.csdn.net/article/details/8873106

    Adaptive-Icons-Help:在Android O中使用Googles新的自适应图标的说明

    步骤1-在android studio中创建一个针对Android O预览的项目如果您已经有一个项目,则可以跳过此步骤第2步-将mipmap-anydpi和mipmap文件夹添加到项目的/ app / src / main / res /文件夹中步骤3-在/ app / src / main...

    mipmap纹理

    mipmap纹理

    qt opengl mipmap纹理

    一个学习qt opengl中的mipmap的示例,其中包含了和普通纹理的对比。通过对比加深对mipmap纹理的学习。

    Embeded Browser 2.0.0

    - Mipmap-emulation shader: faster texture updates without sparkles - Intercept new windows and create in-scene objects for them - Minimalist JSON library - <video> support for Chromium's ...

    unity小工具——查询unity指定目录下的所有图片资源并取消掉mipmap选项的勾选

    今天给大家提供一个自动去掉图片mipmap勾选的小工具。对于UI贴图来说,我们不必应用mipmap,因为一般的UI都是“平铺”在正交摄像机视口的,和摄像机木有距离这一概念,所以我们大可以把UI贴图的mipmap选项去掉,以...

    简历界面的动画效果

    该源码可以支持实现了一个比较不错的简历界面的动画效果案例,源码Euclid,开发商Yalantis又出新代码了,用户简历界面的动画效果,希望这个案例能够帮到大家的学习。

    安卓夜间模式开发【深色主题适配】

     正常情况下,系统会调用values里面的颜色还有主题等信息,当切换到深色模式的时候,系统就会调用“-night”的文件夹里面的信息,所以当你需要深色模式的图片时,对应就需要创建“mipmap-xxhdpi-night”等等 ...

    XploitWebView:XploitWebView是高级的webview android应用程序源代码-Android app source code

    XploitWebView XploitWebView是高级的webview android应用程序源代码,可将您的网站变成令人惊叹的android应用程序 特征 : 下拉刷新 开机画面 支持离线和在线... 在xploit / src / main / res / mipmap-hdp

    drawable跟随TextView居中.zip

    drawable = ContextCompat.getDrawable(getContext(), R.mipmap.xxx); setDrawable(DrawableTextView.LEFT, drawable, width, height); Customizable attributes xml中定义了以下属性 Define xmlns:app=...

    tigase-mobilemessenger

    来自官网,更新于201704。官网在国外很难下载,现在放到这里方便国内的朋友下载研究。 F:. │ .gitignore │ build.gradle │ gradle.properties │ gradlew │ gradlew.bat │ settings.gradle ...

Global site tag (gtag.js) - Google Analytics