android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量。
mipmap 是一种很早就有的技术了,翻译过来就是纹理映射技术。android 中的 mipmap 技术主要为了应对图片大小缩放的处理,在android 中我们提供一个 bitmap 图片,由于应用的需要(比如缩放动画),可能对这个 bitmap 进行各种比例的缩小,为了提高缩小的速度和图片的质量,android 通过 mipmap 技术提前对按缩小层级生成图片预先存储在内存中,这样就提高了图片渲染的速度和质量。

api 中通过 Bitmap 的 public final void setHasMipMap (boolean hasMipMap) 方法可以让系统渲染器尝试开启 Bitmap 的 mipmap 技术。但是这个方法只能建议系统开启这个功能,至于是否正真开启,还是由系统决定。
res 目录下面 mipmap 和 drawable 的区别也就是上面这个设置是否开启的区别。mipmap 目录下的图片默认 setHasMipMap 为 true,drawable 默认 setHasMipMap 为 false。
google 建议大家只把 app 的启动图标放在 mipmap 目录中,其他图片资源仍然放在 drawable 下面。

将icon放置在mipmap文件夹还可以让我们程序的launcher图标自动拥有跨设备密度展示的能力

比如说一台屏幕密度是xxhdpi的设备可以自动加载mipmap-xxxhdpi下的icon来作为应用程序的launcher图标,这样图标看上去就会更加细腻。

 

鉴于mipmap这个特性,回答上面提出的问题,我们将所有的资源图片放在mipmap下面,Android系统将不得不耗费时间去寻找合适的图片,相反,放在drawable相应文件夹下,Android系统很容易根据密度找到对应的资源文件。

把splash启动图片 和一些自己项目里要执行缩放动画的图片放进去即可 其余的还放在drawable下面。
放在mipmap下 系统也就是自动设置的setHasMipmap为true了 会提前进行一个压缩 提高渲染的速度 其余的放里面就有点耗性能了。

114、drawable和mipmap 目录下图片的区别的更多相关文章

  1. Android 获取SDCard中某个目录下图片

    本文介绍Android开发中如何获取SDCard中某目录下的所有图片并显示出来,下面的我们提供的这个函数是通用的,只要提供路径就可以查询出该目录下所有图片的路径信息,并保存到一个List<Str ...

  2. res/drawable目录下图片的Uri

    http://liuyun025.iteye.com/blog/1280838 有时候,我们要用到res/drawable目录下的图片Uri,而这个Uri该如何生存呢?下面就是这Uri的生成方法: U ...

  3. Android获取res目录下图片的uri

    Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" ...

  4. android 显示目录下图片

    知识点 1. 网格视图 2. 读取文件 MainAcitvity package com.test.gridview; import android.support.v7.app.AppCompatA ...

  5. 在android工程中,res目录下又有anim、drawable、layout、menu、raw、values和xml文件夹,分别用来保存?

    res目录主要是存放资源文件的!layout 布局 这个就是你经常看到的与用户交互的界面的 xml 文件,就是各个 view 的排列和嵌套,没什 么好说的啦 风格和主题. 风格主要是指 view 的显 ...

  6. Android复制assets目录下的图片到内存

    转自:http://www.chenwg.com/android/android%E5%A4%8D%E5%88%B6assets%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84 ...

  7. 获取Assets目录下的图片显示并上传

    package com.jingle.getlocal; import java.io.ByteArrayOutputStream; import java.io.InputStream; impor ...

  8. 获取Assets目录下的图片并显示

    package com.jingle.getlocal; import java.io.InputStream; import android.app.Activity; import android ...

  9. winform 在指定目录下已经生成资源Image图片的方式

    假设在项目目录下存在一个Image目录,注意其中图片已经都设置成为:生成方式为资源文件. /// <summary> /// 得到要绘置的图片对像 /// </summary> ...

随机推荐

  1. Django REST framework 中的序列化器

    在此之前定义一个序列化工具:     views中的的代码 from rest_framework.viewsets import ModelViewSet from .models import B ...

  2. JS_高程5.引用类型(2)Array类型

    Array类型: ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的. 创建数组的基本方式: (1)使用Array构造函数 var color=new Array(); ...

  3. sencha touch 目录结构

    1.index.html 整个html 中只加载一个 development.js 2.development.js development.js会根据app.json中的样式和脚本定义来加载样式和脚 ...

  4. js 创建Table,每行3列的方式

    table: <table style="width:100%" id="appDatas"></table> 1. var table ...

  5. JAVA自学笔记15

    JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...

  6. jvm系列

    一.jvm理论 1.1.jvm理论-总述 1.2.jvm理论-class文件 1.2.1.jvm理论-常量池-string 1.2.2.jvm理论-常量池-8种基本类型 1.3.jvm理论-字节码指令 ...

  7. VMware中虚拟机与主机不能ping通解决办法

    先去看看服务全部启动了没? VMware相关服务启动关闭脚本     启动了还报错,接着往下看......     一.如果是桥接模式,那么 可能性1:虚拟机防火墙禁ping,请关闭虚拟机防火墙重试: ...

  8. git reflog

    http://www.softwhy.com/article-8573-1.html https://www.cnblogs.com/irocker/p/git-reflog.html https:/ ...

  9. [C#] VS2017中在某些目录下使用不了 .NET Core 2.0 问题的处理办法

    作者: zyl910 一.缘由 最近遇到了一个奇怪的问题--明明已经在VS2017里装好了 .NET Core 2.0 SDK,且测试过新建一个 .NET Core 2.0控制台项目能成功使用.但是在 ...

  10. github和gitlab并存

    原先在自己电脑中配置github的全局变量,只用它来玩github和码云的项目.现在用自己的电脑开发公司项目,公司项目使用的是gitlab,结果拉取代码时还需要手动输入用户名和密码,这还能忍受几次,但 ...