Подтвердить что ты не робот

Изображение фонового изображения 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, и изображение является действительным девятипартийным png.

4b9b3361

Ответ 1

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

android:background="@drawable/splash_image"

Ответ 2

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

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

in onCreate

Ответ 3

Мне нужно было иметь всплывающее изображение, похожее на начальную активность моего приложения, и столкнулось с той же проблемой. Мне повезло с 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>

My 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, похоже, имеет такой образ запуска.

Ответ 4

Моим решением было изменение андроида: 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>