我的应用程序加载了一些数据以启动,需要几秒钟,所以我希望此时显示启动画面。
我所能看到的只是确保我在setTheme
之前使用super.onCreate
,但是当它加载MainActivity时,背景是启动画面,操作栏有闪光灯屏幕图像被压扁了。
这是我的styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:background">@drawable/background_portrait</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:background">@drawable/splashscreen</item>
</style>
在我的AndroidManifest.xml中,我有android:theme="@style/SplashTheme"
SplashScreen.java运行需要时间的所有代码,然后切换到我所在的MainActivity.java -
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
我错过了什么?它似乎也是flashscreen背景的其他东西的背景,比如一些TextViews和动作栏?
感谢您提供的任何帮助。
编辑此外,启动画面xml中的代码无法运行。它只是加载背景并在完成时加载主要活动?
SplashScreen.java有 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
Log.i("Splash Screen", "loading");
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
// code that takes time
activity_splash_screen.xml是 -
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splashscreen"
tools:context="com.androidandyuk.bikersbestfriend.SplashScreen">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom|center_horizontal"
android:layout_margin="32dp"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"></com.google.android.gms.ads.AdView>
</FrameLayout>
答案 0 :(得分:1)
不要在主题中使用android:background
。任何没有背景的东西都会继承这个。
您打算设置android:windowBackground
。