Android 闪屏不显示

我正在尝试在我的应用程序中实现启动画面。不幸的是,我现在使用的代码没有出现任何内容,它只是直接跳到我的第一个活动中。这是我的 launch_screen.xml 文件中的代码,该文件位于我的可绘制文件夹中:


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


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


        <item

            android:drawable="@drawable/ic_splashscreen2"

            android:gravity="center"

        />


    </layer-list>

请注意,可绘制文件是矢量资源。


这是我的 styles.xml 文件中的代码,我使用这个 launch_screen.xml 文件创建了一个新主题:


       <style name="AppTheme.Launcher">

    <item name="android:windowBackground">@drawable/launch_screen</item>

我的清单中的代码:


<activity android:name=".ViewEventsActivity"

            android:theme="@style/AppTheme.Launcher">

        <intent-filter>

            <action android:name="android.intent.action.MAIN"

                />


            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

        </activity>

谁能告诉我我做错了什么以及如何解决这个问题?


慕神8447489
浏览 130回答 4
4回答

一只斗牛犬

如果您不使用单独的 Activity 作为初始屏幕,您可以在 Manifest 文件中的 Activity 上设置 Splash 主题:<activity&nbsp;&nbsp; &nbsp; android:name=".MainActivity"&nbsp; &nbsp; android:theme="@style/AppTheme.Launcher">&nbsp; &nbsp; &nbsp; &nbsp; <intent-filter>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <action android:name="android.intent.action.MAIN"/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <category android:name="android.intent.category.LAUNCHER"/>&nbsp; &nbsp; &nbsp; &nbsp; </intent-filter>&nbsp; &nbsp; </activity>样式.xml<style name="AppTheme.Launcher">&nbsp; &nbsp; <item name="android:windowBackground">@drawable/launch_screen</item></style>在onCreate超级调用之前的 Activity 中将主题重置为您的AppTheme@Overrideprotected void onCreate(Bundle savedInstanceState) {&nbsp; &nbsp; setTheme(R.style.AppTheme);&nbsp; &nbsp; super.onCreate(savedInstanceState);}

万千封印

我假设您没有延迟从不显示初始屏幕的初始屏幕开始新活动。尝试 :-new Handler().postDelayed(new Runnable() {&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; public void run() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startActivity(yourIntent);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; finish();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }, 1000);

Cats萌萌

由于@Mickverm 的答案是正确的,因此存在一个问题 - 每次系统重新创建活动时都会显示启动画面。所以,在我的应用程序中,我总是使用专门的活动作为启动屏幕。但是活动没有布局,只有启动器主题集,所以它会立即加载。它在这里描述:https&nbsp;://www.bignerdranch.com/blog/splash-screens-the-right-way/ 除非您确实需要(例如,做背景中的某些内容并在初始屏幕上显示进度)

一只名叫tom的猫

您必须intent-filter在Manifest. 例如:&nbsp; &nbsp; <activity&nbsp; &nbsp; &nbsp; &nbsp; android:name=".SplashScreen"&nbsp; &nbsp; &nbsp; &nbsp; android:configChanges="orientation|keyboardHidden"&nbsp; &nbsp; &nbsp; &nbsp; android:screenOrientation="portrait"&nbsp; &nbsp; &nbsp; &nbsp; android:windowSoftInputMode="adjustPan">&nbsp; &nbsp; &nbsp; &nbsp; <intent-filter>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <category android:name="android.intent.category.LAUNCHER" /> //This line&nbsp; &nbsp; &nbsp; &nbsp; </intent-filter>&nbsp; &nbsp; </activity>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java