带有进度条和用于显示加载百分比的文本的应用程序加载启动画面
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
上取得进展)添加到异步任务中。
我正在为我的 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
上取得进展)添加到异步任务中。