Android中 mipmap与drawable区别

AndroidStudio上创建的项目中会包含有一个mipmap的文件夹,里面存放着appic_launcher图标,在Eclipse上这些图标是放置于drawble文件夹下的。那是不是app的所有icon都应放在mipmap中呢?


基本知识:

ldpi          0.75

mdpi        1    (安卓里面以160为标准)

hdpi        1.5

xhdpi       2.0

xxhdpi    3.0

xxxhdpi  4.0


像素密度: dpi

像素:px

独立像素:dp或dip

像素密度 = √{(长度像素数^2+宽度像素数^2}/屏幕尺寸      ;即名屏幕每英寸所占的像素数。


dp = (dpi/160)*px  安卓里面以160为标准)

·        1.相同屏幕大小,如5英寸,160dpi即每英寸有160个像素,其1dp = 1px,此时160dp = 160px,屏幕所占尺寸为1英寸;320dpi即每英寸有320个像素,其1dp = 2px,此时160dp = 320px,屏幕所占尺寸为1英寸;其它像素密度类比。

·        2.同一像素密度,如160dpi,不管在多少尺寸屏幕下,因为每一英寸所占像素数相同,且1dp = 1px,故不管多少dp,其所占像素数相同,所占物理尺寸也相同。

·        Logo标准:48x48,即mdpi48x48的,ldpi, hdpi, xhdpi,xxhdpi, xxxhdpi相对应为36x36, 72x72, 96x96,144x144, 192x192

·        启动图标准:320x480,mdpi320x480的,ldpi, hdpi, xhdpi, xxhdpi, xxxhdpi相对应为 240x320, 480x800, 720x1280, 1080x1920


百度:

MIP map技术帮助避免了不想要的锯齿边缘(称为锯齿状图形)在图像中出现,这种锯齿状图形可能是由于在不同分辨率下使用bitmap图像产生的。


google:

为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map或者 mipmap

度娘和wiki的说明来看,mipmap确实可以加快渲染速度,而且是为了解决在不同分辨率下使用bitmap产生的问题,这就不难理解Launcher图标为什么在mipmap目录下了。在Launcher界面,图标很可能因为选中效果等动画进行放大缩小,因此可以使用mipmap来让动画更加丝滑流畅。


AndroidDeveloper android 4.3关于Mipmap的说明:

Mipmapping for drawables

Using a mipmap as the source for yourbitmap or drawable is a simple way to provide a quality image and various imagescales, which can be particularly useful if you expect your image to be scaledduring an animation.

大意就是如果期望图像在动画中缩放,使用mipmap作为bitmap或者drawable的来源是一个提供有质量的多尺寸规格的图片的简单办法。


StackOverFlow

      stackoverflow上看了相关的讨论后,觉得这位大哥解释的比较在理,更容易理解

 

      所以,最开始的两种说法都存在一定问题,既不是把所有图标都放置在mipmap下,也不是说mipmap只能够放Launcher图标。如果图标有固定的尺寸,不需要更改,那么drawable更加适合。如果需要变大变小变大变小的,有动画的,放在mipmap中能有更高的质量。



  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值