为了账号安全,请及时绑定邮箱和手机立即绑定

Android 闪屏不显示

Android 闪屏不显示

慕神8447489 2022-07-20 15:57:58
我正在尝试在我的应用程序中实现启动画面。不幸的是,我现在使用的代码没有出现任何内容,它只是直接跳到我的第一个活动中。这是我的 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>谁能告诉我我做错了什么以及如何解决这个问题?
查看完整描述

4 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果您不使用单独的 Activity 作为初始屏幕,您可以在 Manifest 文件中的 Activity 上设置 Splash 主题:


<activity 

    android:name=".MainActivity"

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

        <intent-filter>

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


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

        </intent-filter>

    </activity>

样式.xml


<style name="AppTheme.Launcher">

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

</style>

在onCreate超级调用之前的 Activity 中将主题重置为您的AppTheme


@Override

protected void onCreate(Bundle savedInstanceState) {

    setTheme(R.style.AppTheme);

    super.onCreate(savedInstanceState);

}


查看完整回答
反对 回复 2022-07-20
?
万千封印

TA贡献1891条经验 获得超3个赞

我假设您没有延迟从不显示初始屏幕的初始屏幕开始新活动。


尝试 :-


new Handler().postDelayed(new Runnable() {

        @Override

        public void run() {

            startActivity(yourIntent);

            finish();

        }

    }, 1000);


查看完整回答
反对 回复 2022-07-20
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

由于@Mickverm 的答案是正确的,因此存在一个问题 - 每次系统重新创建活动时都会显示启动画面。所以,在我的应用程序中,我总是使用专门的活动作为启动屏幕。但是活动没有布局,只有启动器主题集,所以它会立即加载。

它在这里描述:https ://www.bignerdranch.com/blog/splash-screens-the-right-way/ 除非您确实需要(例如,做背景中的某些内容并在初始屏幕上显示进度)


查看完整回答
反对 回复 2022-07-20
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您必须intent-filter在Manifest. 例如:


    <activity

        android:name=".SplashScreen"

        android:configChanges="orientation|keyboardHidden"

        android:screenOrientation="portrait"

        android:windowSoftInputMode="adjustPan">

        <intent-filter>

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

        </intent-filter>

    </activity>


查看完整回答
反对 回复 2022-07-20
  • 4 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信