Ответ 1
Попробуйте установить фон фона перед запуском нового действия программно.
getWindow().setBackgroundDrawableResource(R.drawable.my_drawable);
Итак, я прочитал сообщение в блоге Romain Guy
Снимок AndroidManifest для запущенного действия:
<activity
android:name=".activity.EditorActivity"
android:screenOrientation="portrait"
android:windowBackground="@drawable/background_editor">
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/editor"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="Editor" />
</FrameLayout>
И, наконец, выталкиваемое существо, установленное в манифесте, background_editor.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/editor_bg"
android:tileMode="repeat" />
editor_bg - это файл .png, расположенный в папке с возможностью его удаления.
Попробуйте установить фон фона перед запуском нового действия программно.
getWindow().setBackgroundDrawableResource(R.drawable.my_drawable);
Я столкнулся с той же проблемой и потратил свой день на это. Мы не можем задавать тему в java, так как в моем случае элемент управления очень сильно зашел в onCreate моей активности всплеска. До этого времени черный экран остается видимым.
Это дало мне понять, что окно должно управляться из темы, которую мы укажем в манифесте.
Есть манифест, который у меня есть:
<activity
android:name=".main.activities.SplashScreen"
android:theme="@style/Splash"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Теперь созданная вами тема выглядит следующим образом:
<style name="Splash" parent="@style/Theme.AppCompat.Light">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowNoTitle">true</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimaryDark">@color/green_09</item>
<item name="colorPrimary">@color/green_09</item>
<item name="windowActionBar">false</item>
</style>
Всплеск ресурса, который содержит ресурс растрового изображения, я должен немного настроить его, чтобы он выглядел идеально не растянутым и в центре:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:antialias="true"
android:dither="true"
android:gravity="fill"
android:src="@drawable/splash_screen" />
он работает для меня, если я объявил это в стиле темы в styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<style name="CustomTheme" parent="android:Theme.Holo.NoActionBar">
<item name="android:windowBackground">@color/bg_evening</item>
</style>
</resources>
и в манифесте я задал эту тему в своем приложении:
<application
android:name="com.my_app.pack"
android:theme="@style/CustomTheme" >
...
или к одному из моих действий:
<activity
android:name="..."
android:theme="@style/CustomTheme">
...
вы можете объявить стили стилей muliple и добавить любой из них к любым вашим действиям, что переопределит тему, установленную в приложении