Impostazione del colore di sfondo del tema Android


105

Sto cercando di modificare il colore del tema di sfondo predefinito, il che dovrebbe essere facile ma sorprendentemente non riesco a farlo funzionare. Tieni presente che desidero che la modifica si applichi all'intera app, non solo a una singola attività. Ecco il mio codice:

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>

e ovviamente nel manifesto

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

Documento Android che ho consultato sulla modifica dei temi: http://developer.android.com/guide/topics/ui/themes.html

Ho provato a passare da white_opaque a pitch_black per tutti gli attributi xml ma non cambia nulla. Eventuali suggerimenti?


1
Prova a rimuovere il canale alfa
Blundell

Va bene, l'ho appena fatto, comunque lo stesso.
Stark

1
Questa è la soluzione migliore che ho letto stackoverflow.com/a/33213433/963543
Ata Iravani

Risposte:


58

Ok si è scoperto che ho fatto un errore davvero stupido. Il dispositivo che sto utilizzando per il test esegue Android 4.0.4, livello API 15.

Il file styles.xml che stavo modificando si trova nella cartella dei valori predefiniti. Ho modificato styles.xml nella cartella values-v14 e ora funziona perfettamente.


4
Oppure puoi semplicemente eliminare le altre cartelle di stili se non le stai utilizzando. Ho avuto lo stesso problema e l'ho risolto con uno styles.xml, nella cartella "valori". Il mio problema era che avevo un elemento del tema per l'attività nel file manifest (che ovviamente sovrascriveva AppTheme).
Stephen Hosking

28
<resources>

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

</resources>

5

Apri res -> values -> styles.xmle <style>aggiungi questa riga sostituendola con il percorso dell'immagine <item name="android:windowBackground">@drawable/background</item>. Esempio:

<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>

C'è <item name ="android:colorBackground">@color/black</item>anche un , che influenzerà non solo lo sfondo della finestra principale ma tutti i componenti della tua app. Leggi informazioni sulla personalizzazione del tema qui .

Se desideri stili specifici per la versione :

Se una nuova versione di Android aggiunge attributi del tema che desideri utilizzare, puoi aggiungerli al tuo tema pur essendo compatibile con le vecchie versioni. Tutto ciò di cui hai bisogno è un altro file styles.xml salvato in una directory dei valori che include il qualificatore della versione della risorsa. Per esempio:

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

Poiché gli stili nel file values ​​/ styles.xml sono disponibili per tutte le versioni, i temi in values-v21 / styles.xml possono ereditarli. Pertanto, puoi evitare di duplicare gli stili iniziando con un tema "base" e quindi estendendolo negli stili specifici della versione.

Leggi di più qui (documento nel tema) .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.