Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 爱奥尼亚+;电容器3+;安卓系统短暂显示扭曲的飞溅图像_Android_Ionic Framework_Splash Screen_Capacitor - Fatal编程技术网

Android 爱奥尼亚+;电容器3+;安卓系统短暂显示扭曲的飞溅图像

Android 爱奥尼亚+;电容器3+;安卓系统短暂显示扭曲的飞溅图像,android,ionic-framework,splash-screen,capacitor,Android,Ionic Framework,Splash Screen,Capacitor,如果您使用API在带有Capactor 3的Ionic Android应用程序中显示闪屏,您可能会遇到以下问题: 问题 在几分之一秒的时间内,飞溅图像将显示为扭曲的,直到以正确的纵横比显示。这意味着它也会在屏幕上“跳跃”一点。如果您在设备处于横向时启动应用程序,或者如果您的设备显示纵横比过大或过大,这将特别明显 背景信息 之所以会发生这种情况,是因为AppTheme.NoActionBarLaunch用于MainActivity的appLaunch设置为将飞溅图像作为背景图像,但“真实”飞溅图像

如果您使用API在带有Capactor 3的Ionic Android应用程序中显示闪屏,您可能会遇到以下问题:

问题 在几分之一秒的时间内,飞溅图像将显示为扭曲的,直到以正确的纵横比显示。这意味着它也会在屏幕上“跳跃”一点。如果您在设备处于横向时启动应用程序,或者如果您的设备显示纵横比过大或过大,这将特别明显

背景信息 之所以会发生这种情况,是因为
AppTheme.NoActionBarLaunch
用于
MainActivity
的appLaunch设置为将飞溅图像作为背景图像,但“真实”飞溅图像在几毫秒后在插件的
SplasScreen.buildViews()方法中初始化

解决方案 要修复它,您可以在
/android/app/src/main/values
下的
style.xml
文件中更改以下内容:

旧的:


@可牵引/飞溅
新的(无背景):


@空的
或设置启动屏幕的背景色:


#ffffff
这将防止在将实际图像视图添加到视图层次结构之前,将飞溅图像显示为背景图像。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()
在TypeScript(离子)代码中,它将自动显示。一旦你想隐藏SplashScreen,只需在你的TypeScript代码中调用
SplashScreen.hide()

当这项操作起作用时,应用程序会先显示一个空白屏幕,然后显示SplashScreen。当然比扭曲的图像要好,但我很困惑,我从来没有和科尔多瓦有过这个问题。你是对的,这并不理想。