AndroidStudio mipmap图片大小,读取顺序各个目录对应的尺寸

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明 国标充电CAN的ID,仅供学习参考。 阅读详情

面试题:Android资源目录的读取顺序?

Android资源文件可以定义在不同分辨率、屏幕方向、语言等(甚至还有夜间模式),当我们的应用需要使用一个资源,这个资源(图片、Layout或者别的)可能在很多res下的子目录中都存在,那么Android系统是如何确认使用哪一个资源呢?

可以先看一下官方文档提供资源(https://developer.android.com/guide/topics/resources/providing-resources.html),了解清楚资源目录的配置和命名规则。

 

这就是一个Android应用的资源查找的顺序问题,其实简单说,在查找时会先去掉有冲突的资源目录(上图第1步),然后再按MCC、MNC、语言等指定的优先级进行查找,直到确认一个匹配资源。根据屏幕尺寸限定符选择资源时,如果没有更好的匹配资源,则系统将使用专为小于当前屏幕的屏幕而设计的资源。

图片放错目录会产生的问题吗?

这一点可能很多人都不会注意,觉得只要往一个drawable目录中放了需要的资源就好了。而我们可以自己做一个简单的测试,把同一个图片资源放在不同的dpi目录,会发现它们使用的内存是不一样的。简单说就是高密度(density)的系统去使用低密度目录下的图片资源时,会将图片长宽自动放大以去适应高密度的精度,当然图片占用的内存会更大。

所以如果能提各种dpi的对应资源那是最好,可以达到较好内存使用效果。如果提供的图片资源有限,那么图片资源应该尽量放在高密度文件夹下,这样可以节省图片的内存开支。

mipmap

在使用Android Studio(应该是从1.1版本开始)创建Android应用项目时,常常会看到系统把ic_launcher.png图标放在了mipmap-xxhdpi目录下了。那么这个mipmap是什么意思呢?和drawable的对应dpi目录有什么区别呢?

我们知道,drawable文件夹是存放一些xml(如selector)和图片,Android会根据设备的屏幕密度(density)自动去对应的drawable文件夹匹配资源文件。

那么mipmap这个目录有什么用呢?

MIP来源于拉丁文中的multum in parvo,意为在一个小空间里的多数。MIP map(有时候拼写成mipmap)是一种电脑图形图像技术,用于在三维图像的二维代替物中达到立体感效应。

Android对放在mipmap目录的图标会忽略屏幕密度,会去尽量匹配大一点的,然后系统自动对图片进行缩放,从而优化显示和节省资源(使用上面说的mipmap技术)。就目前的版本来说,mipmap也没有完全取代drawable的意思,为了更好的显示效果,官方建议如下类型的图片资源可以放到mipmap目录。

Launcher icons.

Action bar and tab icons.

Notification icons

drawable-nodpi文件夹

这个文件夹是一个密度无关的文件夹,放在这里的图片系统就不会对它进行自动缩放,原图片是多大就会实际展示多大。但是要注意一个加载的顺序,drawable-nodpi文件夹是在匹配密度文件夹和更高密度文件夹都找不到的情况下才会去这里查找图片的,因此放在drawable-nodpi文件夹里的图片通常情况下不建议再放到别的文件夹里面。

res/raw和assets的区别

这两个目录下的文件都会被打包进APK,并且不经过任何的压缩处理。

assets与res/raw不同点在于,assets支持任意深度的子目录,这些文件不会生成任何资源ID,只能使用AssetManager按相对的路径读取文件。如需访问原始文件名和文件层次结构,则可以考虑将某些资源保存在assets目录下。

记得之前的版本(Android 2.2)对放在这两个目录的文件还有大小的限制,1M这样吧,之后的版本没有这个限制了。

和美工的关系

很多时候,UI设计师并不太了解Android的DPI,也不太清楚每种DPI对应的ICON规格。这时Android的开发就需要告诉他们一些规范,并结合自己的在真机上的测试经验给予符合项目的ICON尺寸。对于每种密度下的ICON应该设计成什么尺寸其实Android也是给出了最佳建议,ICON的尺寸最好不要随意设计,因为过低的分辨率会造成图标模糊,而过高的分辨率只会徒增APK大小。

密度

建议尺寸

mipmap-mdpi

48 * 48

mipmap-hdpi

72 * 72

mipmap-xhdpi

96 * 96

mipmap-xxhdpi

144 * 144

mipmap-xxxhdpi

192 * 192

 

问答式AI vs 智能体(Agent):它们有什么不同? 你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。 阅读详情

相关推荐

麒麟桌面操作系统QT开发环境搭建

麒麟操作系统安装Qt

因为热爱,所以坚持,记录工作中的乐趣 9272

AndroidStudio mipmap图片大小

开源做为Android优点的同时也是它的缺点,各种产商不同的硬件配置、不同程度对Framework层接口或实现的修改,早已让很多应用开发者头疼。做好兼容一直是Android应用开发的一件头等要事。想想在你的开发机上跑得欢的APK,在老板的手机上莫名地崩溃了,老板会是什么脸色? 因为某种“你懂的”原因,Android设备在国内是无法使用Google提供的服务的,这也致使很多手机产商肆无忌惮对And

LIAN_1988的专栏 9459

自动驾驶感知融合算法拆解:从华为MDC案例看前融合与大融合的工程实现

本文深度解析了华为MDC平台在自动驾驶感知融合算法中的前沿工程实践,重点探讨了Camera-Lidar前融合与多传感器大融合的架构设计。通过异构融合架构、数据流优化和场景化应用,华为MDC平台实现了高效、安全的感知能力,显著提升了自动驾驶系统的性能与可靠性。

weixin_29198045的博客 534

Android Studio - mipmap

获取屏幕dpi(dots per inch图像每英寸长度内的像素点数)值: float xdpi = getResources().getDisplayMetrics().xdpi; float ydpi = getResources().getDisplayMetrics().ydpi; Log.e("tag", "-----xdpi=" + xdpi); Log.e("tag", "-----ydpi=" + ydpi); 对应m

weixin_45745068的博客 1427

【49】Camunda8-Self-Managed部署之Docker方式

围绕camunda8 self-managed,介绍了基于Docker部署相关服务的过程。

AlieNeny的博客 1682

基于STM32H5的循环GPDMA链表使用

STM32H503的GPDMA链表模式可实现灵活的数据传输。相比传统DMA直接编程方式,链表模式通过配置多个节点实现分散数据传输,支持循环链表功能。示例展示了如何使用GPDMA链表实现UART1循环发送数据:配置两个DMA节点分别指向不同发送缓冲区,构建循环链表并绑定到DMA通道。关键点包括:清空链表结构体、正确设置循环模式、检查节点配置。此方法提高了DMA使用的灵活性,适用于需要交替传输多段数据的场景。

kevin1499的博客 451

AndroidStudio:解决图片放入mipmap中有红色波浪线

放图片进mipmap

weixin_45965919的博客 609

YOLOv13改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv13-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 353

Android Studio项目中drawable和mipmap目录使用总结

背景 AndroidStudio上创建的新项目中会包含drawable文件夹和一些mipmap的文件夹。如下图: 而且它们里面都放入了一些图片。这时我们就会想到应用的图片要放到哪一个目录呢?放到mipmap目录和drawable目录有什么区别? 下面是我对mipmap和drawable文件夹的一个简单总结。 drawable和mipmap目录本质 多个drawable和mipmap目录是为了Android设备的图片适配。由于Android 设备具有多种屏幕密度,为了让这些设备获得良好的图形质量

不冬眠的熊的博客 4605

第201期 解锁科研效率新高度:Claude 科学技能插件(claude-scientific-skills)深度体验

科研AI助手Claude Scientific Skills开源工具为Claude大模型扩展科学能力,覆盖数据可视化、数学计算、学术格式处理等科研全流程需求。该插件支持LaTeX公式生成、自动化科研图表绘制、学术文档规范校正等功能,让研究人员通过自然语言指令即可完成专业任务。项目开源可定制,支持特定学科需求扩展,目前已托管于GitHub。使用门槛低,只需配置Claude API密钥即可快速启用,帮助科研人员从繁琐技术细节中解放,聚焦核心研究创新。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 1357

100个Python实战项目(七)实现摩斯密码翻译器

作者主页:海拥 作者简介:优快云全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十 粉丝福利:往期获奖记录 每周送6~9本书,不定期送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等) 摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel F. B. Morse的名字命名。 算法 算法非常简单。英语中的每个字符都被一系列“点”和“破折号”代替,或者有时只是单数的“点”或“

努力是为了站在万人之中,成为别人的光 1万+

Android 中mipmap 和drawable的区别

Android 中mipmap 和drawable的区别

leveretz的博客 911

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2773

Android必知必会-App 常用图标尺寸规范汇总

内容持续更新中,更新日期:2016-08-111. 程序启动图标(icon launcher)放在mipmap-*dpi下,文件名为ic_launcher.png LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。 MDPI (Medium Density Screen, 160 DPI),其图标大小

他叫自己Mr.张 4万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android studio学习(1)-整体框架数理

学习如何搞一个app

永不秃头的程序员的博客 2062

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android Studio 写代码特效 编译器代码特效 以及小地图

话不多说上图; 代码特效:power-mode 代码右侧小地图minimap 接下来我们来设置File –> Settings –> Plugins 先来设置代码特效 小地图的设置 就这样非常炫酷的编译器就完成了,小伙伴们怎么样??? 如果有更好的插件或者特别炫酷的特效可以交流哦;

中华守护者 3034

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android studio 下drawable与mipmap文件夹详解

大家在App打包的时候会不会很疑惑为什么生成的apk文件这么大 这个时候我们不妨浏览下项目的目录,可以看到一个叫res的目录长这个样子: Android的APK文件大都是大在那几个名字里带drawable的目录上 适配所有机器和屏幕的图片素材和其他资源都在一个安装包里,肯定大啊 如果界面做得超简单,纯色啊均匀渐变 完全不使用图片资...

一杯茶,一包烟,一个bug改一天 9705

Android 资源文件存放位置 Drawable 与 Mipmap 区别

建议大家只把 需要适应屏幕分辨率的图片, app 的启动 icon 图标放在 mipmap 目录中,可以提高显示性能、占用内存少;其他图片(引导页背景图,轮播图,giftu图片等) Shape 资源 xml 文件仍然放在 drawable 里面。mipmap 会将资源缩放到设备分辨率大小drawable 会将资源缩放到设备匹配的倍数大小没有个性 哪来的签名!详情请关注点我持续更新中扫一扫 有惊喜!© 2022 09 - Guyu.com | 【版权所有 侵权必究】

低调,谦虚,自律,反思,成长! 3135

Android Studio下drawable图标和mipmap图标详解

创建drawable图标新建一个Android Studio项目,并将任务视图切换到“Project”下,这时可以看到,系统在res目录下,为我们创建了4个对应的drawable文件夹,如下图所示。 如果没有,请读者自行创建(另外还有ldpi的xxxhdpi这两个不常用到的类别,因此,我在这里省略了它们)。每一个对应的drawable目录下,都应该相应地有一张相同的图片,只是分辨率不一样。这些

MrSpirit的博客 6511

Android应用加载那个mipmap

不同的 mipmap 文件夹对应不同密度的设备,系统会根据设备的实际密度(DPI,dots per inch)来选择最合适的资源加载。文件夹是 Android 开发中用来存放适用于非常高密度设备(xxxhdpi 设备)的应用图标资源的文件夹,是为了优化在高分辨率屏幕上的显示效果而设计的。因此,开发者需要根据不同的密度为应用提供不同分辨率的图标资源,确保在不同屏幕密度的设备上显示时都能保持良好的视觉质量和清晰度。适用于高密度屏幕,约为 240dpi 的设备,通常是早期高端 Android 设备的标准。

netwalk的专栏 1934

androidstudio安装codeglance插件实现类sublime的minimap

一款提高编程效率的插件 实现在编辑窗口右侧显示minimap。 如上图所示,很好用的插件。 可以使用该插件的IDE有: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio 下载链接:https://plugins.j

shellhard的博客 3191

Android的drawable,mipmap的图标大小

一、drawable 1、drawable 它的宽和高是144*144 2、drawable-hdpi 它的宽和高是96*96 3、drawable-mdpi 它的宽和高是144*144 4、drawable-xhdpi 它的宽和高是72*72 5、drawable-xxhdpi 它的宽和高是48*48 6、drawable-xxxhdpi 它的宽和高是36*36 二、mipmap 1.mipmap-hdpi 它的宽和高是96*96 2.mipmap-mdpi 48*48 3.mipmap-xhdpi 96

彬sir哥的博客 1060
上一篇: Android RecyclerView 去掉滑动边缘阴影效果
下一篇: EditText把软键盘上的回车键改为搜索、发送或者 下一步,窗口随软键盘弹出而改变。
张漂亮2号
博客等级 码龄12年 73粉丝 209原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值