前言:Android 8.0系统出来这么久了,也是时候来适配一下了。8.0 系统修改的地方挺多的,但是需要我们程序猿开发适配的倒不是很多。这篇博客主要介绍8.0系统适配中的应用图标适配。

在Android 7.1系统之前APP的应用图标都是mipmap中的静态图片android:icon="@mipmap/logo",7.1之后谷歌开始推广圆形图标,又添加了android:roundIcon="@mipmap/logo"属性来让你的APP支持圆形图标。到了8.0,又发生了变化,我们来新创建一个项目看看发生了什么。

 多了一个文件夹mipmap-anydpi-v26。点开看一下

 里面也是启动图,但是不是一张图片,而是xml文件,打开这个xml文件

 设置了background,foreground,继续点下去

 

 原来是两张SVG图,别慌,这个代码不用我们自己写的,下面会说到是可以用Android Studio生成的。

其实上面的文件是为适配8.0系统中应用图标专门生成的。有些小伙伴可能会疑惑了,为什么我的没有尼。将你的as升级到3.0以上,并且把targetSdkVersion 设置26以上就会自动生成了,如果你的targetSdkVersion 设置的是26一下的是不会有问题的,Android系统会认为你还没有做好对8.0的适配工作,是可以向下兼容的。

Android 8.0或以上系统的手机都会使用这个目录下的图片文件。

8.0系统应用图标的解释

从Android 8.0开始将应用图标分成两层:前景层和背景层,也就是我们前面看到的对应background,foreground指定的SVG图。那么我们在设计图标的时候就需要单独设计前景和背景,前景用来展示应用图标的logo,背景用来衬托应用图标的logo。需要注意的是。背景层在设计的时候只允许定义颜色和纹理,但是不能定义形状。Google将定义形状的事情交给了手机厂商来做了。这也是为什么我们看到的有些手机的应用图标是圆形的,有些是圆角的。手机厂商的做法也很简单,只需要在我们设计的图标上再盖上一层mask。

开始适配

将刚刚创建的项目跑起来,为了对比方便我开了两个模拟器,一个是7.0的系统一个是8.0的系统,利用现有的资源将应用图标也换了一下,原图如下:

 

 背景是透明色,如果不加灰色阴影恐怕看不见啊,哎,资源有限啊,但是不影响显示效果。分别看一下同样的图标显示在不同的系统上,我的targetSdkVersion 设置的是26,但是未做适配。

 

 第一张是7.0的,第二张是8.0的。额,8.0的完全看不见了啊。这是因为系统自动在应用图标的外层套了一个白色的圆圈。

好吧,下面就开始我们的适配过程。

打开项目,使用快捷键Ctrl+Shift+A(windows系统),command+shft+A或者右击项目new->选择Image Asset

 

 打开编辑器,在这里就可以进行图标适配了。

 好了,现在就可以制作我们的图标了。先对编辑器说明一下,左边是操作区域,右边是预览区域。

操作区域:

Icon Type:保持默认就可以了,表示同是创建兼容8.0系统以及老版本系统的应用图标;

Name:应用图标的名称,随自己而定;

下面是三个页签,第一个是编辑前景层,第二个是编辑背景层,第三个编辑老版本的系统图标

Layer Name:对应各层的命名;

Asset Type:资源类型,前景层有三种类型可选,背景层有两种类型可选:Color,Image.说明背景层可以是图片也可以是单独的颜色;

Path:资源路径;

Trim:保持默认就好;

Resize:设置资源文件的大小。设置资源文件大小的时候要注意观察预览区域,预览区域里有各种形状类型,每种类型有一个圆实线,圆实线区域以内表示安全区域,我们的图标大小要在安全区域内。

 点击Next制作完成,打开mipmap文件夹

 重新在两个模拟器上运行APP

 

 ok,这样就完成了适配工作。

更多相关文章

  1. 关于Android中四类核心组件的简介
  2. USB 配件概述
  3. Android自动化测试工具——Monkey
  4. Android的nodpi,xhdpi,hdpi,mdpi,ldpi
  5. Android系统的架构
  6. Android(安卓)数字签名学习笔记
  7. Android(安卓)SeekBar的使用,进度条的另一种实现方式
  8. android的系统架构
  9. Android(安卓)studio无法修改桌面的图标(已解决)

随机推荐

  1. android 增加新按键
  2. android ndk不支持宽字符转换
  3. android真机测试问题
  4. 九宫格的实现及九宫格源码
  5. android opengl es 简单实例
  6. Android ormlite 框架介绍
  7. 【总结备用】Android监听网络状态实现(Br
  8. Android底部导航栏,三种风格和实现
  9. 基于Android studio3.6的JNI教程之ncnn之
  10. android 5.1 屏蔽MENU键 返回键唤醒系统