带有进度条和用于显示加载百分比的文本的应用程序加载启动画面

App loading splash screen with processbar and Text for showing percentage of loading

我正在为我的 android 应用程序制作启动画面。屏幕从我的 MainActivity.java 开始,其中 onCreate() 方法包含以下代码。同样 activity class 正在其 onResume() 方法中加载地图,我正在其中加载新布局 activity_main.xml。那个xml黑屏没有背景画面

MainActivity.java

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.loading_screen);
        progressBar = (ProgressBar) findViewById(R.id.progressBar1);
        textView = (TextView) findViewById(R.id.textView1);

        new Thread(new Runnable() {
            public void run() {
                while (progressStatus < 100) {
                    progressStatus += 1;

                    handler.post(new Runnable() {
                        public void run() {
                            progressBar.setProgress(progressStatus);
                            textView.setText(progressStatus + "/"
                                    + progressBar.getMax());
                        }
                    });
                    try {

                        Thread.sleep(200);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();

        compass = new CompassSensor(this, compassHandler);
    }

我的 loading_screen.xml 布局如下。

loading_screen.xml

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

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/splash_screen_loading" xmlns:android="http://schemas.android.com/apk/res/android">

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="25dp" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignTop="@+id/progressBar1"
            android:layout_marginLeft="15dp"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </RelativeLayout>

我面临的问题是在应用程序加载期间只显示黑屏。我试图调试问题,但我所有的努力都没有用。请帮助。

如果您希望视觉效果发生变化,则不应在 onCreate 中尝试此操作。在 onCreate 期间没有向用户显示任何内容。我知道 Thread.sleep(200)

您可能想在 onResume 中尝试这样做,只需 调用 super.onResume 之后。按照您描述的方式,R.layout.loading_screen 甚至不应该显示。

此外,如果您使用 AsyncTask 加载地图,开发人员会告知您如何发布进度。看看这个:AsyncTask。也许您也可以将之前的工作(在 R.layout.loading_screen 上取得进展)添加到异步任务中。