gpt4 book ai didi

android - 摆脱启动时的白屏

转载 作者:搜寻专家 更新时间:2023-11-01 09:31:45 25 4
gpt4 key购买 nike

我一直在网上搜索避免在我的 Android 应用程序启动时出现白屏的正确方法 - 将其替换为闪屏。我找到了使用像

这样的样式的解决方案
<style name="AppTheme.SplashTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
</style>

但在我的例子中,这只会延迟 View 的出现,因为应用程序不起作用( View 会在几秒钟后膨胀)。我不想看到持续几秒钟的 View ,我只是想在我的应用程序需要加载时将空白屏幕替换为自定义内容。获得所需行为的唯一方法是在我的 SplashscreenActivity 样式中放置一个可绘制对象作为背景。

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

现在,我不想将图像放置为背景——因为屏幕的分辨率不同——而是设置一个 xml 布局。这可能吗?在不延迟 View 外观的情况下摆脱黑屏的最佳方法是什么?

最佳答案

你应该这样做

  • res/drawable 文件夹中创建一个包含以下内容的 xml 文件。这将作为您的初始屏幕。我们将其命名为 splash.xml

    <?xml version="1.0" encoding="utf-8"?>

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorPrimary" />
    <item>
    <bitmap android:src="@drawable/splash_logo"
    android:gravity="center" />
    </item>
    </layer-list>
  • 然后您需要为启动 View 指定一个不带标题栏的样式/主题,因此将下面的样式添加到您的style.xml 文件。

    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
    </style>
  • AndroidManifest.xml 中更改 launcher activitytheme 以使用 SplashTheme

        <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/SplashTheme">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
  • 最后在 launcher activity(在我的示例 MainActivity 中)将主题更改回默认应用程序主题,通常命名为 AppTheme

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.AppTheme)
    super.onCreate(savedInstanceState);
    ...
    }

就是这样!现在运行您的应用程序,看到不再有白屏。

引用资料:我使用了this postthis one提供以上代码示例。

关于android - 摆脱启动时的白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com