在过去,Android应用程序的图标都是应该放到相应的分辨率的mipmap目录下,不过从Android8.0开始,Google已经不再建议使用单一的一张图片来作为应用程序的图标,而是应该使用前景和背景分离的图标设计方式。具体来讲,应用程序的图标应该被分为两层:前景层和背景层。前景层用来展示应用图标的Logo,背景层用来衬托应用图标的Logo。需要注意的是,背景层在设计的时候只允许定义颜色和纹理,不能定义形状。
那么图标的形状由谁来定义呢?Google将这个权利交给手机厂商。手机厂商会在图标的前景层和背景层之上再盖上一层mask。这个mask可以是圆角矩形,圆形或者方形。由具体手机厂商而定,这样就可以将手机上所有应用程序的图标裁剪成相同的形状,从而统一图标的设计规范。
如下两个图片是8.0及以上系统的图标原理示意图。可以看到最终裁剪出的应用程序图标也是圆形的。

裁剪后的应用程序图标。

了解了工作原理我们可以借助AndroidStudio工具来制作能够兼容各个Android系统版本的应用程序图标。点击导航栏中的File->new->Image Asset打开Asset Studio工具。如下图

在Asset Studio中,左边是操作区域,右边是预览区域。

先来看操作区域,第一行的Icon Type保持默认就可以了,表示同时创建兼容8.0系统以及老版本系统的应用图标。第二行的Name用于指定应用图标的名称,这里保持ic_launcher的命名即可。这样可以覆盖掉之前自动生成的应用程序图标。接下来的三个页签,Foreground Layer用于编辑前景层,Background Layer用于编辑背景层,Legacy用于编辑老版本系统的图标。
再来看预览区域,它的作用就是预览应用图标的最终效果。再预览区域中给出了可能生成的图标形状。每个图标都有一个圆圈,这个圆圈叫做安全区域,必须保证图标的前景层完全处于安全区域才行,否则可能会出现应用图标的Logo被手机厂商的mask裁剪掉的情况。
在Foreground Layer中选取之前准备好的那张Logo图片,并通过下方的Resize拖动条对图片进行缩放,以保证前景层的所有内容都在安全区域中的。然后在Background Layer中选择"Color"这种Asset Type模式,并使用#309C78这个颜色值作为背景层的颜色。

在预览部分我们可以看到我们的图标已经能够应对各种不同类型的mask了。
接下来点击“next”会进入一个确认图标生成路径的界面,然后直接点击界面上的“Finish”按钮就可以完成图标的制作了。所有图标相关的文件都会被生成到相应分辨率的mipmap目录下。

其中有一个mipmap-anydpi-v26目录中放的不是图片,而是xml文件,这是什么意思呢?其实只要Android8.0及以上系统的手机,都会使用这个目录下的文件来作为图标。通过打开ic_launcher.xml文件来查看它的代码:

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"><background android:drawable="@color/ic_launcher_background"/><foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

这就是适配Android8.0及以上系统应用图标的标准写法。可以看到,这里在< adaptive-icon >标签中定义了一个< background >标签用于指定图标的背景层,引用的是我们之前设置的颜色值。又定义了一个< foreground >标签用于指定图标的前景层,引用的就是我们之前准备的那张logo图。
那么这个ic_launcher.xml文件在哪里被引用呢?其实只要打开AndroidManifest.xml文件

可以看到,< application >标签的android:icon属性就是专门用于指定应用程序图标的,这里将图标指定了@mipmap/ic_launcher,那么在Android8.0及以上系统中,就会使用mipmap-anydpi-v26目录下的ic_launcher.xml文件来作为应用图标。7.0及以上系统就会使用mipmap相应分辨率下的ic_launcher.png图片来作为应用图标。另外你可能会注意到< application >标签下还有一个android:roundIcon属性,这是一个只适用于Android7.1系统的过渡版本,很快就被8.0系统的新图标适配方案所替代了。
运行程序可以看到我们的桌面应用。

Android之制作App的图标相关推荐

  1. 【Android Studio安装部署系列】十八、Android studio更换APP应用图标

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目后会有一个默认图标,那么如何更换图标呢? 替换图标 这个方案不建议直接在已有项目上更换图标,建议 ...

  2. Android 项目必备(五)--> Android Studio 制作 App 的 logo 图标

    文章目录 简介 准备 开始制作 简介 应用图标的形状由谁来定义呢?Google将这个权利就交给手机厂商了.不是有些手机厂商喜欢学习苹果的圆角图标吗?没问题,由于应用图标的设计分为了两层,手机厂商只需要 ...

  3. Android Studio 制作APP启动界面(Splash)

    最近又开始学习Android studio 了,在制作APP时,都有一个启动的界面,看上去美观且实用(也可以作为以后的广告位← 那怎样制作呢? 第一步:新建Splash 如图,新建一个Empty Ac ...

  4. Android studio制作APP调用浏览器

    第一步: 下载Android studio,可以直接在百度搜索,如我的程序为:android_studio_bundle_V1.2.0.0_windows.1433235883.exe 下载JDK,地 ...

  5. 【Android】[1]APP桌面图标和显示名字国际化

    前言 接下来几天,我会陆续发一系列文章,本来想起得标题是<一套低可用,难伸缩,低并发的Android APP架构方案设计实践>,过于抽象,还是直接知识点做标题吧,方便以后复习. 前提条件, ...

  6. Android 数据库制作APP,在Android 中使用Anko框架制作一个完整的App,第二集

    作者:feintkotlin(Kotlin学习网) 说明:这次更新对一些小的细节进行了改进,并增加了SQLite的操作.该应用支持6.0及以上android系统 更新:当有网络时,将前5条数据保存到数 ...

  7. Android之替换App桌面图标

    1.需求 需要动态替换app在桌面的图标 2.解决办法 1).在AndroidManifest.xml里面进行配置多个启动的alias别名 启动的activity <activityandroi ...

  8. Android 点击APP桌面图标启动时黑屏或者白屏

    问题:当APP添加了闪屏页后,可能会出现点击桌面图标启动APP时先黑屏或者白屏后,再显示闪屏页,不利于用户体验. 解决: 1.解决方法很简单,在APP的style资源文件中添加如下代码: <st ...

  9. Android studio隐藏app应用图标

    1. 隐藏app图标例子: http://download.csdn.net/detail/u013718120/9722223 2.会出现以下问题: session "app": ...

最新文章

  1. python 字符串 转 dict
  2. Microsoft程序员测试题
  3. 开会迟到,代码不规范,晚上八点半去健身,跟leader坐电梯自己先出去!某新入行程序员被疯狂吐槽!...
  4. 面试:如何从大量的 URL 中找出相同的 URL?
  5. 只需3步,随时随地玩转数据分析
  6. 旷厂练习生 | 小白进阶之三个月发表一篇CVPR
  7. poj1797Heavy Transportation最大生成树
  8. “父母双学霸, 生娃是学渣”的科学解释是什么?
  9. Matlab添加BNT工具箱
  10. 计算机软件答辩ppt范文,计算机毕业答辩ppt模板范文.ppt
  11. windows server 2003 桌面图标有蓝底如何解决
  12. commonAncestor
  13. 路由器与交换机的区别?
  14. android 电源管理
  15. GitLab——提交合并请求
  16. Semantic UI 之 图标 icon
  17. 计算机网络access code,access code
  18. vue+echarts中国地图+省市级地图(全程教学,你也可以)
  19. 关于虚拟机与操作系统
  20. 2021-2027全球与中国便携式超高清摄像头市场现状及未来发展趋势

热门文章

  1. 6个免费商用图片素材库,再也不用担心版权问题了
  2. 2013-3-28 唯品会笔试题
  3. 移动端echarts点击全屏按钮横屏全屏展示
  4. 威武霸气的8888元虚拟售价,三星S8全面开启预约!
  5. linux安装dnf服务器地址,CentOS7使用dnf安装mysql的方法
  6. 时光不负有心人,星光不负赶路人——我的考研经历分享
  7. 第一章 国内下载AOSP最新源码的方法
  8. Tuxera NTFS2023MacOS读写软件功能介绍使用
  9. Oracle项目转Mysql的sql语句改造总结
  10. MySql 替换字段中字符串的sql语句