如何在横向模式下显示 android 启动画面?

Posted

技术标签:

【中文标题】如何在横向模式下显示 android 启动画面?【英文标题】:How to show android splash screen in landscape mode? 【发布时间】:2020-04-01 19:23:38 【问题描述】:

我正在开发一个 android 应用程序,并希望在系统加载应用程序时以横向模式显示启动画面。

我制作了一个小型测试应用程序来重现该问题,并看到它实际上在纵向模式下工作,但是当我将这行 android:screenOrientation="sensorLandscape" 添加到我的清单时,它突然不再工作了。它不显示任何启动屏幕,好像属性windowPreviewDisabled 设置为true。 有谁知道我做错了什么?

我的清单:

<activity android:name=".MainActivity" android:theme="@style/AppTheme.Launcher" android:screenOrientation="sensorLandscape"  android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.
    </intent-filter>
</activity>

样式 xml:

<style name="AppTheme.Launcher" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground">@layout/launch_screen</item>
</style>

启动屏幕 xml(位于 layout-land 文件夹内):

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">

    <item android:drawable="@android:color/black"/>

    <item>
        <bitmap
            android:src="@drawable/logo2"
            android:gravity="center"/>
    </item>

</layer-list>

【问题讨论】:

【参考方案1】:

也许你可以添加setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 在 setContentView 方法之后的活动中。

【讨论】:

这就是我现在正在做的事情。我基本上从纵向模式开始,然后在onCreate 切换到横向模式。仍然不确定为什么它在横向模式下不起作用。 奇怪的是这不起作用。您是否尝试以编程方式设置布局?像这样:if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) createHorizontalalLayout(); else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) createVerticalLayout();

以上是关于如何在横向模式下显示 android 启动画面?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上旋转自定义启动画面?

在横向模式下飞溅(启动图像)?

Worklight Cordova 应用程序启动画面在应用程序启动期间旋转

横向启动画面未加载

无法在我的 iPhone 应用程序中为横向设置 SplashScreen

在拆分视图中,当应用程序以横向模式启动时如何将视图调整到屏幕