Ionic + Capacitor 3 + Android shows distorted splash image briefly(Ionic+Capacitor3+Android短暂显示扭曲的开机画面)
问题描述
如果您使用@capacitor/splash-screenAPI在您的Ionic Android应用程序中显示闪屏,则可能会遇到此问题:
问题
在不到一秒的时间内,开机画面将显示失真,直到它以正确的纵横比显示。这意味着它还会在屏幕上略有跳跃,如果您在设备处于横向时启动应用程序,或者如果您的设备具有伸展或粗大的显示宽高比,这一点将特别明显。
背景信息
发生这种情况是因为MainActivity
在应用程序启动时使用的AppTheme.NoActionBarLaunch
设置为将开机画面作为背景图像,但&q;Real";Sash图像在几毫秒后在该插件的SplasScreen.buildViews()
方法中初始化。
解决方案
要修复它,您可以在/android/app/src/main/values
下的styles.xml
文件中更改以下内容:
旧:
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">@drawable/splash</item>
</style>
新建(无背景):
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">@null</item>
</style>
或设置闪屏的背景颜色:
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#ffffff</item>
</style>
这将防止在将实际ImageView添加到视图层次结构之前将开机画面显示为背景图像。ImageView将具有插件配置的androidScaleType
中定义的正确scaleType。
使用以下版本测试:
- @电容/安卓:3.0.0-rc.0
- @电容器/闪屏:0.3.6
- @离子/角度:5.6.3
使用以下配置:
const config: CapacitorConfig = {
// ...
plugins: {
SplashScreen: {
launchShowDuration: 3000,
launchAutoHide: false,
backgroundColor: '#ffffffff',
androidSplashResourceName: 'splash',
androidScaleType: 'CENTER_CROP',
showSpinner: false,
splashFullScreen: false,
splashImmersive: false,
},
},
// ...
};
注意:无需调用打字(离子)代码中的SplashScreen.show()
,它会自动显示。一旦您想要隐藏SplashScreen,只需在您的打字代码中调用SplashScreen.hide()
。
推荐答案
上述解决方法不适用于需要透明背景的社区条形码扫描仪。
我的解决办法(空白白屏的缺点仍然存在,但它是有效的):
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/white</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar"></style>
这篇关于Ionic+Capacitor3+Android短暂显示扭曲的开机画面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Ionic+Capacitor3+Android短暂显示扭曲的开机画面
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01