Come rendere il stile a tema di windowBackground personalizzato funziona su tutti i dispositivi Android?

Sto cercando di get tutte le mie attività per avere uno stile personalizzato che dovrebbe essere simile a questo:

bene

  • Webview di Android all'interno di un servizio?
  • Firebase funzionalità offline come cache
  • Geofencing Android (poligono)
  • Registra la class di domanda in Manifest?
  • Phonegap - Android Come regolare il layout in modalità schermo integer quando il softkeyboard è visibile
  • File Android aperto
  • Questo tema funziona su molti dispositivi, tra cui Nexus 7, Samsung Galaxy S4 e Samsung Droid Charge (Gingerbread in esecuzione). Tuttavia, su altri dispositivi, come HP Slate 7 e Motorola Droid RAZR, finisce così:

    cattivo

    Ho il seguente AndroidManifest.xml tag AndroidManifest.xml di application :

     android:theme="@style/AppTheme" 

    Il tema è come segue in res/values/styles.xml :

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

    Ho anche aggiunto uno styles.xml sotto res/values-v11 . Ecco lo stile applicabile da lì:

     <style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light.NoActionBar"> </style> 

    Infine, questo viene visualizzato in styles.xml in res/values-v14 :

     <style name="AppBaseTheme" parent="@android:style/Theme.DeviceDefault.Light"> </style> 

    Ho cercato di definire il tema per each attività e utilizzare manualmente la function setTheme() in onCreate() , ma nulla ha funzionato. Ho anche cercato di impostare manualmente un background in each Activity , e questo non funzionava. Cosa posso fare per risolvere il mio problema?

    EDIT: Ciò che è interessante è l'impostazione di android:background negli stili lo rende funzionale, ma gli elementi che non dovrebbero avere sfondi ricevono anche il colore di background.

  • Disabilita gli events touch per tutte le viste
  • BottomSheetBehavior non funziona quando la libreria di progettazione viene aggiornata a 24.2.0
  • Come get i dati da DialogFragment a un frammento?
  • Come aggiornare immediatamente la visualizzazione dell'image
  • Android Studio: Errore durante l'analisi di XML e URI non registrato
  • Come riprodurre i file audio direttamente dalla cartella res / raw?
  • 2 Solutions collect form web for “Come rendere il stile a tema di windowBackground personalizzato funziona su tutti i dispositivi Android?”

    La chiave per risolvere il problema stava cambiando android:windowBackground nel tema seguente:

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

    Notate che non utilizzo più @color , ma semplicemente un @drawable , il xml per il quale è sotto:

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/background"/> </shape> 

    Sembra che alcuni dispositivi non supportino l'accettazione di un colore per questo elemento.

    Ho scoperto che l'ultima versione di Android Studio prevede che il genitore dello stile deve essere Theme.AppCompat. Inoltre, è un buon stile per creare un file colors.xml nella directory valori (con elementi di colore denominati tra i tag di risorsa). Metti i valori RGB come valori agli elementi di colore denominati. Riferirli nei tuoi stili con @ color /.

     <!--colors.xml in values folder--> <resources> <color name="color1">#ffb62a23</color> <color name="color2">#ffedeba6</color> <color name="color3">#00ff00</color> </resources> <!--style tags --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowBackground">@color/color2</item> <item name="android:textColorPrimary">@color/color1</item> <item name="android:textColorSecondary">@color/color2</item> <item name="android:textColorTertiary">@color/color3</item> </style> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.