Налаштування кольору фону для теми Android


105

Я намагаюся змінити колір теми теми за замовчуванням, який повинен бути простим, але дивно, я не можу його працювати. Зауважте, що я хочу, щоб зміни були у всьому додатку, а не лише для однієї діяльності. Ось мій код:

styles.xml

<resources>

    <color name="white_opaque">#FFFFFFFF</color>
    <color name="pitch_black">#FF000000</color>

    <style name="AppTheme" parent="android:Theme.Light">
        <item name="android:background">@color/white_opaque</item>
        <item name="android:windowBackground">@color/white_opaque</item>
        <item name="android:colorBackground">@color/white_opaque</item>
    </style>

</resources>

і звичайно в маніфесті

<application
    .
    .
    .
    android:theme="@style/AppTheme" > 
</application>

Документ Android, з яким я радився щодо зміни тем: http://developer.android.com/guide/topics/ui/themes.html

Я намагався перемикатися між white_opaque та pitch_black для всіх атрибутів xml, але це нічого не змінює. Будь-які пропозиції?


1
Спробуйте видалити альфа-канал
Blundell

Добре, що я просто зробив, все одно те саме.
Старк

1
Це найкраще рішення , яке я читав stackoverflow.com/a/33213433/963543
Ата Iravani

Відповіді:


58

Гаразд виявилося, що я зробив дійсно дурну помилку. Пристрій, який я використовую для тестування, працює під керуванням Android 4.0.4, API рівня 15.

Файл styles.xml, який я редагував, знаходиться в папці значень за замовчуванням. Я відредагував style.xml у папці значень-v14, і вона працює все добре.


4
Або ви можете просто видалити папки інших стилів, якщо ви їх не використовуєте. У мене була та сама проблема і виправлено її за допомогою одного styles.xml у папці "значень". Моя проблема полягала в тому, що в файлі маніфесту я мав тему теми "Активність" (яка, звичайно, переоцінила AppTheme).
Стівен Хоскінг

28
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo.NoActionBar">
        <item name="android:windowBackground">@android:color/black</item>
    </style>

</resources>

5

Відкрийте res -> values -> styles.xmlі <style>додайте цей рядок, замінивши шлях зображення <item name="android:windowBackground">@drawable/background</item>. Приклад:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 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:windowBackground">@drawable/background</item>
    </style>

</resources>

Існує <item name ="android:colorBackground">@color/black</item>також те, що вплине не тільки на ваш основний фон вікна, але і на весь компонент у вашій програмі. Читайте про налаштування теми тут .

Якщо ви хочете, щоб версії були певними стилями :

Якщо нова версія Android додає атрибути теми, які ви хочете використовувати, ви можете додати їх до своєї теми, зберігаючи сумісність зі старими версіями. Все, що вам потрібно, це інший файл styles.xml, збережений у каталозі значень, що включає в себе класифікатор версії ресурсу. Наприклад:

res/values/styles.xml        # themes for all versions
res/values-v21/styles.xml    # themes for API level 21+ only

Оскільки стилі у файлі значень / styles.xml доступні для всіх версій, ваші теми у величинах-v21 / styles.xml можуть їх успадкувати. Таким чином, ви можете уникнути дублювання стилів, починаючи з "базової" теми, а потім розширюючи її у своїх стилях.

Детальніше читайте тут (док. У темі) .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.