uniapp 安卓 splash 变形如何解决?
在uniapp开发的安卓应用中,启动页splash出现图片变形的问题该如何解决?我已经按照官方文档配置了不同尺寸的启动图,但在某些设备上仍然会出现拉伸或压缩的情况,导致显示效果不理想。请问有没有什么方法可以确保splash在不同分辨率的安卓设备上都能正常显示?是否需要针对特殊机型单独处理?
2 回复
在 pages.json 中配置 splashscreen 的 autoclose 为 false,并在 App.vue 的 onLaunch 中手动关闭启动图。同时确保启动图尺寸与屏幕分辨率匹配,推荐使用 9.png 格式图片避免拉伸变形。
在 UniApp 中,安卓端启动图(Splash)变形通常是由于图片尺寸与设备屏幕比例不匹配导致的。以下是解决方案:
1. 检查 Splash 图片尺寸
- 确保 Splash 图片使用 9.png 格式,支持自适应拉伸。
- 推荐尺寸:至少提供 1242x2688px(覆盖常见分辨率),或按需求生成多套分辨率图片。
2. 配置 manifest.json
在 manifest.json 的 "app-plus" -> "splashscreen" 节点中调整参数:
{
"app-plus": {
"splashscreen": {
"autoclose": true,
"waiting": true,
"delay": 0,
"ads": false,
"landscape": false, // 横屏设为 true
"display": "portrait", // 竖屏模式
"image": "static/splash.png" // 图片路径
}
}
}
3. 关键参数说明
display:设为"portrait"(竖屏)或"landscape"(横屏),需与图片方向一致。image:图片路径需指向正确资源。
4. 使用 9.png 图片
- 用 Android Studio 制作 9.png,定义可拉伸区域(上下左右黑边标记)。
- 将生成的
splash.9.png替换原文件,并确保无额外白边。
5. 多分辨率适配
在 src/main/res/ 下放置不同尺寸的 Splash 图片:
- drawable-ldpi/ (低密度)
- drawable-mdpi/ (中密度)
- drawable-hdpi/ (高密度)
- drawable-xhdpi/ (超高密度)
6. 重新编译项目
修改后,通过 HBuilderX 重新生成自定义调试基座或发行包。
总结
通过 规范图片尺寸、使用 9.png 格式、正确配置 manifest 可解决变形问题。若仍异常,检查图片宽高比是否与目标设备屏幕匹配。

