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

Android平台Ionic 6+Capacitor 4启动页(Splash Screen)拉伸问题求助

Ionic启动页拉伸问题修复方案(cordova-res生成资源场景)

使用cordova-res生成启动页资源后,应用启动时出现启动图拉伸的问题,结合你提供的Capacitor和Android Style配置,可尝试以下几个修复步骤:

1. 校验cordova-res生成的资源规范

cordova-res对原始启动图的尺寸有严格要求,若原图比例不符合标准,生成的各分辨率资源会被强制拉伸:

  • 确保原始启动图尺寸至少为2732x2732像素(正方形通用图),避免用非比例原图生成资源
  • 重新生成资源,跳过自动配置适配:
    cordova-res splash --skip-config --copy
    
  • 检查Android项目res/drawable-*目录下的splash图片,确认各分辨率图片比例与对应屏幕比例匹配(比如xxhdpi对应1280x1920竖屏比例)

2. 调整Capacitor的缩放类型配置

当前配置的androidScaleType: 'CENTER_CROP'会裁剪图片适配屏幕,若原图比例与设备差异大,易出现拉伸或裁剪过度。可替换为以下两种更友好的缩放类型:

// Capacitor.config.ts
SplashScreen: {
  launchShowDuration: 3000,
  launchAutoHide: true,
  backgroundColor: '#ffffffff',
  androidSplashResourceName: 'splash',
  androidScaleType: 'CENTER_INSIDE', // 保持原图比例,不拉伸,空白处用背景色填充
  // 或使用FIT_CENTER:缩放至完全显示,可能留空白
  // androidScaleType: 'FIT_CENTER',
  showSpinner: false,
  splashFullScreen: false,
  splashImmersive: false,
}

3. 修改Android背景配置,避免强制拉伸

直接将@drawable/splash设为背景会触发Android默认的拉伸填充行为,改用layer-list让图片居中显示:

  1. 修改Style.xml:
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
    <item name="android:background">@drawable/splash_background</item>
</style>
  1. 在Android项目res/drawable目录下创建splash_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 对应Capacitor配置中的backgroundColor -->
    <item android:drawable="@color/white" />
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/splash" />
    </item>
</layer-list>

4. 清除缓存并重新构建

完成以上修改后,执行以下步骤确保资源生效:

# 清除Capacitor缓存
ionic capacitor clean android
# 重新生成启动页资源
cordova-res splash --copy
# 重新构建并运行
ionic capacitor run android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:45:08