Изображение фонового изображения Android

Как использовать фоновое изображение в теме / стиле деятельности?

Если я сделаю это с помощью цвета:

<style name="CustomTheme" parent="android:Theme.Light"> <item name="android:windowBackground">@color/custom_theme_color</item> </style> 

Он работает правильно, но если я заменю строку:

 <item name="android:windowBackground">@drawable/splash_image</item> 

Изображение отображается правильно, но весь контент сбрасывается в крошечный блок в верхнем левом углу экрана. Тень под строкой состояния также отключена или испорчена.

Я использую Mono для Android, и изображение представляет собой действительный файл с девятью патчами.

Я также не использую темы, поэтому в макете активности я бы добавил

 android:background="@drawable/splash_image" 

Я не использую темы или что-то еще, поэтому я не уверен, как это повлияет на это, но я установил свой фон следующим образом:

 getWindow().setBackgroundDrawableResource(R.drawable.background_image); 

В onCreate

Мне нужно было создать всплеск, похожий на начальную активность моего приложения, и столкнулся с той же проблемой. Мне повезло с windowContentOverlay вместо windowBackground. Выбираемая строка появилась ниже строки состояния в том же положении, что и реальный макет. Он работал на Android 2.2, Android 3.0 и Android 4.1.

Это мой стиль:

 <style name="SplashTheme" parent="android:style/Theme.Light"> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@drawable/splash</item> </style> 

Мой splash.xml drawable имитирует заголовок моего пользовательского интерфейса с помощью списка слоев:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--- Background; tile is broken on Android 2.2 so just have super wide background that will get clipped --> <item> <bitmap android:gravity="top|left" android:src="@drawable/splash_background" /> </item> <!--- Icon left justified --> <item> <bitmap android:gravity="top|left" android:src="@drawable/header_icon" /> </item> <!--- Buttons/etc right justified --> <item> <bitmap android:gravity="top|right" android:src="@drawable/splash_buttons" /> </item> </layer-list> 

Я считаю, что ActionBar также имеет некоторые встроенные способы справиться с этим, если ваше приложение использует его. Кажется, что у образца MonoIO есть такой образ запуска.

Моим решением было изменение андроида: windowBackground для android: background.

 <?xml version="1.0" encoding="UTF-8" ?> <resources> <style name="Theme.Splash" parent="android:Theme"> <item name="android:background">@drawable/splash</item> <item name="android:windowNoTitle">true</item> </style> </resources> 
Intereting Posts