You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Kivy Buildozer将应用图标裁剪为圆形而非挤压适配?

解决Kivy/Buildozer安卓图标被挤压成圆形的问题

针对你遇到的Pixel机型图标被挤压而非裁剪的问题,给你三个实用解决思路:

1. 直接制作带透明背景的圆形图标(最省心)

安卓系统对图标的处理逻辑是:如果图标本身是带透明区域的圆形/圆角样式,系统会直接保留原有显示效果,不会强行拉伸。你可以用Photoshop、Figma或者免费的Canva这类工具,把原始图标裁剪成圆形,周围保留透明背景,然后生成安卓要求的多分辨率图标(比如48x48、72x72、96x96、144x144、192x192、512x512像素),替换掉原来的icon.png后重新打包即可。

2. 启用安卓自适应图标(推荐适配新系统)

安卓8.0及以上支持自适应图标(Adaptive Icons),系统会自动根据机型的图标形状(圆形、圆角矩形等)裁剪前景内容,不会挤压拉伸。你需要在buildozer.spec里添加以下配置:

# 自适应图标前景(核心图标,建议尺寸至少1024x1024,带透明背景)
android.adaptive_icon_foreground = %(source.dir)s/adaptive_foreground.png
# 自适应图标背景(纯色或渐变图,可选,默认透明)
android.adaptive_icon_background = %(source.dir)s/adaptive_background.png
# 可关闭旧版单一图标配置以避免冲突
# icon.filename = %(source.dir)s/icon.png

配置完成后,Buildozer会自动生成符合安卓规范的自适应图标,系统会负责按形状裁剪前景,完美解决挤压问题。

3. 手动指定安卓图标资源目录

如果你不想用自适应图标,也可以手动准备对应分辨率的安卓图标,放在项目的res/drawable-*dpi目录下(比如drawable-mdpi、drawable-hdpi等),然后在buildozer.spec里指定图标路径:

# 指向安卓资源目录下的图标
android.icon = %(source.dir)s/res/drawable-mdpi/icon.png

不过这种方法需要手动维护多分辨率图标,效率不如前两种。


内容的提问来源于stack exchange,提问作者Dr Xorile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:19:54