【问题标题】:How to show android splash screen in landscape mode?如何在横向模式下显示 android 启动画面?
【发布时间】: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>

【问题讨论】:

    标签: android performance android-layout splash-screen


    【解决方案1】:

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

    【讨论】:

    • 这就是我现在正在做的事情。我基本上从纵向模式开始,然后在onCreate 切换到横向模式。仍然不确定为什么它在横向模式下不起作用。
    • 奇怪的是这不起作用。您是否尝试以编程方式设置布局?像这样:if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { createHorizontalalLayout(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ createVerticalLayout(); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多