加载Android应用程序加载屏幕背景图片需要很长时间

我正在开发一个Android应用程序。 就我而言,当应用程序启动时,它显示一个临时屏幕,而AsyncTask在后台获取数据。 该临时屏幕仅包含背景图像(20 KB)。 但在此背景下需要一段时间才能加载。 由于这一点,当我开始我的应用程序,我只看到一个白色的屏幕,一段时间后,它显示背景图像。 关于如何摆脱这个问题并从头开始显示背景图像的任何想法这里是开始屏幕的xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/start"
    android:orientation="vertical" >

</LinearLayout>

谢谢


我有同样的问题。 这个令人敬畏的人有解释。

TL; DR(只有在连接不好的情况下,我才会去阅读它):“预览窗口的目的是让用户立即反馈该应用程序已启动,但它也使您的应用程序有时间自行初始化。您的应用程序已准备好运行,系统将删除该窗口并显示您的应用程序的窗口和视图。“ 你可以在主题中设置它。 最低限度,我的设置:

/res/values/styles.xml中的主题:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:windowBackground">@drawable/app_bg</item>
    </style>
    <!-- Base theme for any other activity other than your starting one. -->
    <!-- If only one activity, just set the splash bg as its bg -->
    <style name="MyTheme.MainActivity" parent="@style/AppTheme">
        <item name="android:windowBackground">@drawable/app_splash_bg</item>
    </style>

</resources>

AndroidManifest.xml中:

...
<activity
    android:name=".MainActivity"
    android:theme="@style/MyTheme.MainActivity"
    ...
    <!-- Set the MainActivity theme, can be skipped if you only have -->
    <!-- one activity and did not setup anything other than your base theme -->

MainActivity.java:

@Override
protected void onResume() {
    super.onResume();
    MainActivity.this.getWindow().setBackgroundDrawableResource(R.drawable.app_bg);
}

基本上,你为你的开始活动设置了一个主题背景。 然后,您在开始活动的onResume期间将背景设置为正常背景。

另外,您可以在开始活动主题中windowBackground声明,以便在启动时查看原始(我认为)“丑陋的白色”屏幕。


在你的临时屏幕上,首先你应该做setContentView(),然后调用AsyncTask(使用一个进度条,onPostExecute()将其解除)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Now start the AsyncTask.

}

另外请注意,当您从一项活动转到另一项活动时,会有一些延迟; 这是你无法消除的。 我会建议你只有一次活动。

链接地址: http://www.djcxy.com/p/11755.html

上一篇: Android app loading screen background image takes too long to load

下一篇: Set checkbox as read