Image Asset和mipmap-anydpi-v26

参考:https://blog.csdn.net/S_u_mm_er/article/details/105001281

因为build.gradle里面写的targetSdkVersion低于26,而且也只是在安卓8.1以下的设备跑过,所以根本没有发现应用图标有问题。直到前几天,忽然发现apk装到机器上之后根本没有显示mipmap-*dpi文件夹下的ic_launcher.png,而是显示了系统自带的那个绿底白色的android机器人图标。

因为后来升级了Android Studio,所以在manifest.xml中发现多了个ic_launcher.xml和ic_launcher_round.xml的文件,这两个文件放在mipmap-anydpi-v26的文件夹下。

原本以为ic_launcher_background和ic_launcher_foreground应该是个图片,没想到是个的xml文件。而这个ic_launcher_foreground预览的时候可以看到就是白色的机器人。

文章目录
Image Asset和mipmap-anydpi-v26
方法1:删掉mipmap-anydpi-v26
方法2:用Image Asset来制作adaptive icon
ImageAsset做出来的图标太小
方法1:删掉mipmap-anydpi-v26
StackOverflow上有一个推荐的回答,就是把mipmap-anydpi-v26这个文件夹删去,因为删去之后系统没机会找ic_launcher.xml。对于安卓8.1来说,系统会优先读mipmap-anydpi-v26里的ic_launcher来匹配图标,而不是像8.1以下的那样直接读取mipmap-*dpi。然而,我的图标还是没有显示出来。于是找到了博客说可以new一个Image Asset来改图标。

方法2:用Image Asset来制作adaptive icon
首先,确保build.gradle里面的buildSdk是26或以上的,否则没办法操作Image Asset里的Resize。

mipmap-anydpi-v26 -> New -> Image Asset

打开之后是这样的


Foreground Layer就是图标的图案(白色机器人),Background Layer是背景(绿色底)。

Name就是生成的这个icon的名字,如果不改名的话,那么用Image Asset制作出来的icon就会替代原来放在mipmap-*dpi里的所有ic_launcher和ic_launcher_round。(当然会按照像素匹配)

Source Asset里面的Path就是自定义的icon,因为系统只生成一张icon,然后再把这些icon制作出不同的dpi类型的icon,所以Path里面要选择*dpi最高的那张图片,否则出来的icon一转成xhdpi之后就会变得特别模糊。

当选择了一张图片之后,


右上角的Preview里面有很多个dpi可以预览。现在很明显可以看出这个图片过大,所以需要在左下角Resize进行操作。

ic_launcher_foreground至少把图案放在那个安全区的圆圈里面。接下来就是ic_launcher_background。


如果不是要用图片叠加的话,那么Asset Type可以直接选Color而不选Image。

然后Next,再保存就行了。

这时重新打开ic_launcher.xml就会变成这样

重新打开ic_launcher.png,原来的绿底白机器人会被替换掉


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值