uniapp 安卓 splash 变形如何解决?

在uniapp开发的安卓应用中,启动页splash出现图片变形的问题该如何解决?我已经按照官方文档配置了不同尺寸的启动图,但在某些设备上仍然会出现拉伸或压缩的情况,导致显示效果不理想。请问有没有什么方法可以确保splash在不同分辨率的安卓设备上都能正常显示?是否需要针对特殊机型单独处理?

2 回复

pages.json 中配置 splashscreenautoclosefalse,并在 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 可解决变形问题。若仍异常,检查图片宽高比是否与目标设备屏幕匹配。

回到顶部