flutter_native_splash启动页图片始终被裁剪问题求助
Flutter启动页图片被裁剪问题解决方案(基于flutter_native_splash)
问题重现
使用flutter_native_splash插件添加启动页时,无论设置多大尺寸的图片(示例图132*250像素),启动页图片始终被裁剪。当前配置如下:
flutter_native_splash: android_12: image: assets/logo_lockup_flutter_vertical.png color: "#FFFFFF" ios: true android: true image: assets/logo_lockup_flutter_vertical.png color: "#FFFFFF"
实际启动页效果显示图片被裁剪,无法完整展示。
问题原因
flutter_native_splash默认采用cover(Android旧版/iOS)或resize(Android 12+)的适配模式,会拉伸或裁剪图片以填充启动页容器,垂直长图这类非屏幕比例的图片极易被裁剪。
解决方案
1. 修改配置文件,设置适配模式为contain
修改pubspec.yaml中的flutter_native_splash配置,为不同平台添加适配模式,确保图片按比例完整显示:
flutter_native_splash: # Android 12+ 配置 android_12: image: assets/logo_lockup_flutter_vertical.png color: "#FFFFFF" image_mode: contain # 保持图片比例,完整显示不裁剪 # iOS 配置 ios: image: assets/logo_lockup_flutter_vertical.png color: "#FFFFFF" fit: contain # 适配iOS启动页容器,完整显示图片 # 旧版Android配置 android: image: assets/logo_lockup_flutter_vertical.png color: "#FFFFFF" fit: contain # 适配旧版Android启动页容器 color: "#FFFFFF"
2. 重新生成启动页并验证
执行以下命令重新生成启动页资源:
flutter pub run flutter_native_splash:create
然后卸载当前应用并重新安装(避免缓存影响),即可看到完整的启动页图片。
3. 优化图片尺寸(可选)
如果图片比例与主流屏幕比例差异过大,可给图片添加透明边距,调整整体比例接近1:1或16:9,进一步避免系统启动页容器的裁剪。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

