首页 > 编程知识 正文

Android mipmap和drawable的区别,android和ios的平台区别

时间:2023-05-04 06:45:06 阅读:224480 作者:751

原创 Android mipmap和drawable的区别 2017-03-13 12:56:29 疾风细语 阅读数 1824 更多 分类专栏: Android 总结 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/jasonwang18/article/details/61915956

mipmap文件夹下面应该放哪些图片

Android studio 1.4时出现了mipmap这类文件夹,所有的ic_launcher.icon都放在了mipmap文件夹下面,按照原先的开发习惯,我们将所有的资源图片放在了drawable文件件下面,也就是ic_launcher.icon所在的目录。现在drawable文件夹不是自动生成了,很多人习惯性地,将所有资源图片放在了mipmap,认为Google使用了mipmap替换了drawable。至于mipmap为何替换drawable,mipmap有什么优点,却没有深究。

将您的启动器图标置于 mipmap/ 文件夹中。 res/... mipmap-ldpi/... finished_launcher_asset.png mipmap-mdpi/... finished_launcher_asset.png mipmap-hdpi/... finished_launcher_asset.png mipmap-xhdpi/... finished_launcher_asset.png mipmap-xxhdpi/... finished_launcher_asset.png mipmap-xxxhdpi/... finished_launcher_asset.png 注:您应该将所有启动器图标都置于 res/mipmap-[density]/ 文件夹而非 drawable/ 文件夹内,以确保启动器应用使用最佳分辨率图标。

main/res/ Contains application resources, such as drawable files, layout files, and string values in the following directories. See Application Resources for more information. drawable/ For bitmap files (PNG, JPEG, or GIF), 9-Patch image files, and XML files that describe Drawable shapes or Drawable objects that contain multiple states (normal, pressed, or focused). See the Drawable resource type. mipmap/ For app launcher icons. The Android system retains the resources in this folder (and density-specific folders such as mipmap-xxxhdpi) regardless of the screen resolution of the device where your app is installed. This behavior allows launcher apps to pick the best resolution icon for your app to display on the home screen. For more information about using the mipmap folders, see Managing Launcher Icons as mipmap Resources.

谷歌官方说明,鼓励把启动器图标放在mipmap中。而原先drawable的文件夹下面应该放其他的资源图片。

先提出一个问题,我们将所有的资源图片都放在mipmap中会怎样?我们下面解答。

mipmap使用的优势

Android开发团队认为使用mipmap文件夹保存启动图标是最佳的开发方式。使用mipmap的最大优势是你可以在各种屏幕密度的设备下将资源存储在mipmap文件夹下,然后对于特定屏幕密度的设备你可以从drawable文件夹下去除掉与这个特定设备无关的资源信息。

我们用一个例子来说明这一特性。假设用户有一个设备被标识为xxhdpi的设备,那么开发者apk中的drawable文件夹下的其他分辨率大小的资源,例如xxxhdpi分辨率,就是不被需要的;换句话说,就是可以被去除掉的。然而应用图标很可能是与其他资源图片不同的,因为他可能占据整个屏幕,因此你可能需要启动图标的分辨率高于其他资源。而这时你为了设备适配的原因,高分辨率图片所在的文件夹已经被你去除了,这时当程序运行时,系统会将原来低分辨率的图片进行拉伸,然而这种做法可能会导致产生一个丑陋的模糊的图片。

另一方面,你可能会说,你并不会使用去除资源来减少apk大小的方式去制作不同版本的apk文件。这个时候你用mipmap文件夹去存储登陆图标看上去不会产生任何意义。然而这并不意味着你不应该使用它,最好的使用它的理由莫过于Android开发团队认为应该使用它,并且把它描述为了开发的最佳实践。他们知道在Android的开发线上将会产生什么样的新特性,而且尽管没有人能确定,但是Android开发团队很可能计划引入这样一个新特性,就是在用户下载App的时候,apk会自动丢弃掉不合适的资源文件。

将icon放置在mipmap文件夹还可以让我们程序的launcher图标自动拥有跨设备密度展示的能力
比如说一台屏幕密度是xxhdpi的设备可以自动加载mipmap-xxxhdpi下的icon来作为应用程序的launcher图标,这样图标看上去就会更加细腻。

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

mipmap是什么

在三维世界中,显示一张图的大小与摄象机的位置有关,近的地方,图片实际象素就大一些,远的地方图片实际象素就会小一些,就要进行一些压缩,例如一张64*64的图,在近处,显示出来可能是50*50,在远处可能显示出来是20*20.

如果只限于简单的支掉某些像素,将会使缩小后的图片损失很多细节,图片变得很粗糙,因此,图形学有很多复杂的方法来处理缩小图片的问题,使得缩小后的图片依然清晰,然而,这些计算都会耗费一定的时间.

Mipmap纹理技术是目前解决纹理分辨率与视点距离关系的最有效途径,它会先将图片压缩成很多逐渐缩小的图片,例如一张64*64的图片,会产生64*64,32*32,16*16,8*8,4*4,2*2,1*1的7张图片,当屏幕上需要绘制像素点为20*20 时,程序只是利用 32*32 和 16*16 这两张图片来计算出即将显示为 20*20 大小的一个图片,这比单独利用 32*32 的那张原始片计算出来的图片效果要好得多,速度也更快.

总之,mipmap技术是Android 发展过程中对于启动器图标显式优化的一种最优方案,它有效地提高了渲染效率,提升了性能和用户体验。

参考文章

http://code.oneapm.com/android/2015/08/25/android3/

http://blog.sina.com.cn/s/blog_5f99aed00100d7pw.html

http://blog.csdn.net/feixuedudiao/article/details/6233662

文章最后发布于: 2017-03-13 12:56:29
如何使用CSS设置div半透明的效果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。