mipmap 和 drawable 的区别

2023-05-16

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 下面。

下面是引用自 google 官方的描述

Mipmapping for drawables 
Using a mipmap as the source for your bitmap or drawable is a simple way to provide a quality image and various image scales, which can be particularly useful if you expect your image to be scaled during an animation. 
Android 4.2 (API level 17) added support for mipmaps in the Bitmap class—Android swaps the mip images in your Bitmap when you’ve supplied a mipmap source and have enabled setHasMipMap(). Now in Android 4.3, you can enable mipmaps for a BitmapDrawable object as well, by providing a mipmap asset and setting the android:mipMap attribute in a bitmap resource file or by calling hasMipMap().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mipmap 和 drawable 的区别 的相关文章

随机推荐

  • Mac版 PyCharm 2018.3.3 激活 2019.1.12

    https blog csdn net qq 27686779 article details 78870816 https blog csdn net jayo70 article details 84622014
  • ubuntu 20.04安装mysql 8.0.28

    最近在ubuntu20 04安装配置mysql 8 0 28 时遇到了一点小麻烦 xff0c 而这些问题应该是高手不屑一顾 xff0c 而新手又无从下手的 xff0c 现在我把我的解决过程写下来 xff0c 以备后用 1 安装 span c
  • 手写插件:使 Chrome 增加 右键菜单项 实现多搜索

    参考 xff1a https www cnblogs com kevin Y p 10119838 html 1 随地创建一个文件包并命名 2 文件包内创建以下文件 xff1a 2 1 manifest json 34 manifest v
  • Mac上使用clion基于cmake 开发gtk gtk+

    gtk gtk 43 度娘介绍 xff1a GTK 43 xff08 GIMP Toolkit 是一套源码以LGPL许可协议分发 跨平台的图形工具包 最初是为GIMP写的 xff0c 已成为一个功能强大 设计灵活的一个通用图形库 xff0c
  • Mac上使用clion基于cmake 开发qt

    安装软件 清华 在线安装的qt安装器 https mirror tuna tsinghua edu cn qt archive online installers 3 0 里面选择项如下 xff1a 红色区域必选一项 xff0c 紫色区域自
  • docker make

    FROM debian 10 RUN apt get update amp amp apt get install y no install recommends curl python3 vim python3 distutils sql
  • U-SEM体验模型——让游戏交互设计的维度更加清晰

    U SEM体验模型 让游戏交互设计的维度更加清晰 U SEM体验模型 让游戏交互设计的维度更加清晰游戏交互设计的定位游戏交互设计的场景游戏对玩家输出玩家对游戏输入 游戏交互体验的维度 U SEM体验模型游戏交互的复杂度游戏交互设计的应用 游
  • Android 12 WiFi 连接状态轮转

    WiFi 学习资料整理 gt nbsp nbsp Android WiFi 目录 WiFi 学习资料整理 gt nbsp nbsp Android WiFi 1 nbsp WifiClientModeImpl和WPA Supplicant状
  • 扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)

    扩展卡尔曼滤波 xff08 EKF xff09 算法详细推导及仿真 xff08 Matlab xff09 扩展卡尔曼滤波算法是解决非线性状态估计问题最为直接的一种处理方法 xff0c 尽管EKF不是最精确的 最优 滤波器 xff0c 但在过
  • Linux中线程的同步与互斥、生产者消费模型和读者写者问题、死锁问题

    线程的同步与互斥 线程是一个存在进程中的一个执行控制流 xff0c 因为线程没有进程的独立性 xff0c 在进程内部线程的大部分资源数据都是共享的 xff0c 所以在使用的过程中就需要考虑到线程的安全和数据的可靠 不能因为线程之间资源的竞争
  • 解决The following packages have unmet dependencies问题!!!

    1 安装包的时候出现如下情况 xff08 缺少依赖 xff09 xff1a 2 解决方案 xff1a 尝试多种方法无果 xff0c 最终借助一个强大的包管理工具 xff08 aptitude xff09 终于成功了 xff01 xff01
  • linux的开机过程

    1 主机加电自检 xff0c 加载 BIOS 硬件信息 2 读取 MBR 的引导文件 GRUB LILO 3 引导 Linux 内核 4 运行第一个进程 init 进程号永远为 1 5 进入相应的运行级别 6 运行终端 xff0c 输入用户
  • Ubunt 20.04 使用CDROM或ISO作为安装源

    有些项目由于安全性的要求 xff0c 需要部署在没有互联网环境的内网中 xff0c 那么如何在离线环境中给ubuntu安装相关的软件就是考验大家的linux基础知识的时候了 本文就带领大家利用CDROM或者挂载ISO镜像两种方式配置ubun
  • 关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    在Intellij idea中新建了一个Maven项目 xff0c 运行时报错如下 xff1a Error java 不支持发行版本5 本地运行用的是JDK9 xff0c 测试Java的Stream操作 xff0c 报错应该是项目编译配置使
  • Spring之配置类源码深度解析

    这篇文章是继 Spring之启动过程源码解析之后 xff0c 对Spring启动过程中用到的几个重要的方法进行详细的解读 目录 一 invokeBeanFactoryPostProcessors xff0c 执行BeanFactoryPos
  • 20210702剑指Offer03(数组中重复数字)

    找出数组中重复的数字 输入 xff1a 2 3 1 0 2 5 3 输出 xff1a 2 或 3 span class token keyword class span span class token class name Solutio
  • react异步数据如ajax请求应该放在哪个生命周期?

    对于同步的状态改变 xff0c 是可以放在componentWillMount xff0c 对于异步的 xff0c 最好好放在componentDidMount 但如果此时有若干细节需要处理 xff0c 比如你的组件需要渲染子组件 xff0
  • RabbitMQ exchange交换机机制

    目录 RabbitMQ 概念exchange交换机机制 什么是交换机binding xff1f Direct Exchange交换机Topic Exchange交换机Fanout Exchange交换机Header Exchange交换机R
  • 解决open-vm-tools无法复制粘贴文件问题

    在使用vmware kali linux时一直忍受着一个情况 xff1a open vm tools Error when getting information for file 34 tmp VMwareDnD 3jTONh xxx N
  • mipmap 和 drawable 的区别

    Android 在 API level 17 加入了 mipmap 技术 xff0c 对 bitmap 图片的渲染支持 mipmap 技术 xff0c 来提高渲染的速度和质量 mipmap 是一种很早就有的技术了 xff0c 翻译过来就是纹