您要么有透明背景,要么没有。意味着应用程序的背景在启动和停止时都是透明的。
由于您希望您的背景在开始时透明但不再透明,您可以创建一个(某种)启动画面,它只是一个透明的fill_parent
矩形并具有正常主题。
关于这一点的评论。即使您在应用程序启动期间看到主屏幕,任何点击和触摸都已被路由到您的应用程序。用户可能会感到困惑,他/她仍然可以看到主屏幕但不能使用它。此外,他/她可能会因为他们启动了您的应用程序而感到困惑,但似乎什么也没发生。
编辑:这个想法是,创建一个单独的布局,只有一个透明的背景,当应用程序启动时,在实际应用程序的布局开始之前使用这个布局。这就像一个启动屏幕,但透明。
这里有一些代码来说明。
首先是splash的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#00000000" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="Starting..."
android:background="#FF000000"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
然后是飞溅活动:
public class Splash extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
}
@Override
protected void onPostResume() {
super.onPostResume();
startActivity(new Intent(this, YOUR_ACTUAL_ACTIVITY.class));
finish();
}
}
对于测试,您可能希望在启动实际应用程序活动之前添加一些等待以查看启动片刻。