Domanda

Ho un'applicazione Android con la versione 1.6 Prendo la carta da parati e mostrarlo alla mia domanda. (Lo faccio programatically chiamando getWallpaper () sul Attività)

Quando questo viene installato su un telefono 2.1, che ha carta da parati dal vivo, la carta da parati dal vivo non viene restituito da getWallpaper (), perché restituisce solo un Drawable, e carta da parati dal vivo probabilmente è un'altra cosa.

Quindi la domanda è, è possibile mostrare una carta da parati dal vivo sullo sfondo di una domanda di 1,6? Come?

Grazie

=============================================== =========================================

Finora non ho trovato una soluzione per questo. Sto aggiungendo questo per capire meglio la questione

Per essere chiari: L'applicazione è scritta per 1.6 in modo da funzionare su tutti i 1.6 e superiori. La domanda è: possiamo scrivere un app con 1.6 come destinazione, ma il supporto live wallpapers se in esecuzione su un dispositivo di 2,1 ??

Grazie

È stato utile?

Soluzione

ho trovato una soluzione:

1) Con android.os.Build.VERSION.SDK_INT controllare quale versione del telefono ha. 2) fare se / chiamate altro, quindi per ogni versione è possibile chiamare il metodo desiderato. In questo caso:

  

if (android.os.Build.VERSION.SDK_INT> = 7) {

     

this.setTheme (android.R.style.Theme_Wallpaper);

     

}

     

altro

     

{

     

// qualcos'altro

     

}

3) Costruire l'applicazione utilizzando 2.1. e impostare nel manifesto Android utilizza-sdk: minSdkVersion = "4" in modo che funziona anche su 1.6

4) assicurarsi che funzioni su entrambi i telefoni 1.6 e 2.1, perché da quando si dispone di entrambe le chiamate verso gli SDK, assicuratevi di non chiamare i metodi di 2.1 quando si esegue 1.6 e viceversa.

Grazie per l'aiuto

Altri suggerimenti

sono stati aggiunti sfondi Live 2.1, in modo che semplicemente non ha senso cercare di mostrare una carta da parati dal vivo su un dispositivo 1.6 (o 2.0).

2.0 è stato aggiunto lo stile tema Theme.Wallpaper, che, come il nuovo modo ufficiale per mettere un'attività (o finestra) sulla parte superiore della carta da parati del sistema (dal vivo o no). Naturalmente, dal momento che questo è apparso in 2.0, è anche possibile non utilizzare questo in 1.6.

Prima di 2.0, l'unico modo per visualizzare in cima lo sfondo del sistema era di usare getWallpaper () per recuperare l'immagine di sfondo statica, e prendersi cura di voi stessi nel disegno l'interfaccia utente. Questo, naturalmente, non può sostenere sfondi dal vivo.

Se si desidera avere un app che mostra in carta da parati su entrambi i pre-2.0 e 2.0 e le versioni successive della piattaforma, è necessario controllare la versione di API android.os.Build, e regolare il proprio comportamento in modo appropriato: durante l'inizializzazione la vostra attività, se 2.0 o versione successiva utilizzare setTheme per scegliere il tema carta da parati; in caso contrario, ottenere l'drawable e rendere lo sfondo del vostro utente. Quando si utilizza il tema carta da parati, è necessario assicurarsi che l'interfaccia utente non disegna uno sfondo opaco su di esso e coprire lo compongono. Si potrebbe anche voler provare a impostare il tema di vostra attività a Theme.Translucent, per ottenere una migliore comportamento in 2.0 o versione successiva (dove idealmente si usa Theme.Wallpaper che le animazioni corretta dà anche).

In realtà, è possibile utilizzare concepibile di versione resouurces per rendere il tuo tema che regola la opportunamente a seconda della versione della piattaforma (sia una carta da parati o di un tema tradizionale). Non ho mai cercato di fare questo, però.

Hai provato a usare Theme.Wallpaper come il tema della vostra attività? Che imposta lo sfondo del telefono come sfondo della attività, e lavora con Live Wallpapers.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top