如何在bash脚本中将Android adaptive icon转换为PNG格式?
无需Android SDK的bash端实现方案
核心依赖开源图像处理工具ImageMagick即可完成合成,无需部署复杂的Android SDK环境。
前置准备
安装ImageMagick工具,主流操作系统都可以直接通过包管理器安装:
- Debian/Ubuntu 系列:
sudo apt install imagemagick - RHEL/Fedora 系列:
sudo dnf install ImageMagick - macOS:
brew install imagemagick
如果你的前景/背景资源是XML格式的矢量图,额外安装librsvg工具处理矢量转码:
- Debian/Ubuntu 系列:
sudo apt install librsvg2-bin
转换步骤
- 矢量资源转PNG(仅矢量格式资源需要执行)
# 分别将背景、前景矢量图转为108*108尺寸的PNG(Android自适应图标标准尺寸) rsvg-convert -w 108 -h 108 ic_launcher_background.xml -o background.png rsvg-convert -w 108 -h 108 ic_launcher_foreground.xml -o foreground.png
- 合成自适应图标
convert background.png foreground.png -geometry +0+0 -composite adaptive_icon.png
- 可选:生成Launcher实际显示裁剪效果
系统Launcher显示图标时会裁剪掉自适应图标外圈的多余区域,108px尺寸的图标裁剪为72px居中区域即可还原显示效果:
convert adaptive_icon.png -gravity center -crop 72x72+0+0 +repage launcher_icon.png
如果图标资源被打包在APK中,可以先用apktool解包APK提取对应资源后再执行上述操作:
# 解包APK提取资源 apktool d your_app.apk -o unpacked_dir # 自适应图标资源一般存放在 unpacked_dir/res/mipmap-*/ 或 unpacked_dir/res/drawable-*/ 目录下
内容的提问来源于stack exchange,提问作者Saleh
相关产品推荐
相关产品推荐

