我正在使用启动画面为我的Android应用程序。屏幕从我的MainActivity.java开始,其中onCreate()方法包含以下代码。同样的活动类是在其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>
我遇到的问题是在应用加载期间只显示黑屏。我试图调试问题,但我所有的努力都没用。 Plz帮助。
答案 0 :(得分:1)
如果您希望进行视觉更改,则不应在onCreate
中尝试此操作。在onCreate
期间,没有向用户显示任何内容。我知道Thread.sleep(200)
。
您可能希望尝试在onResume
中执行此操作,只需 调用super.onResume
即可。你描述它的方式,甚至不应该显示R.layout.loading_screen
。
此外,如果您使用AsyncTask
加载地图,开发者会让您知道如何发布进度。看看这个:AsyncTask。也许你可以将这个先前的工作(在R.layout.loading_screen
上取得进展)添加到异步任务中。