Autore Topic: Creazione WallPaper e Live Wallpaper  (Letto 3969 volte)

Offline manuel.barbares

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
Creazione WallPaper e Live Wallpaper
« il: 11 Gennaio 2012, 11:17:48 CET »
0
Ciao a tutti, sono nuovo del forum.
Sono un novello di android e vorrei imparare a fare qualche applicazione. Il mio primo obiettivo è creare un semplice Wallpaper che mi carichi a rotazione delle immagini da impostare come sfondo.
Ho cercato nei vari forum e nella guida on line su google ma ho solamente trovato come costruire e disegnare un wall paper, non come visualizzare una immagine predefinita come wallpaper.
Qualcuno conosce il comando e/o procedura per visualizzare come wallpaper una immagine predefinita (ad esempio una foto)?

Ho poi notato che ci sono dei simpatici LiveWallPaper nel market store? Ad esempio un'immagine di uno sfondo di pini innevati con la neve che cade. Qualcuno mi sa dire come si possono realizzare? SOno delle gif che vengono visualizzate oppure le animazioni vengono create da codice con OpenGL ?
GRazie, ciao!

Offline NanoAndroide

  • Utente junior
  • **
  • Post: 63
  • Respect: +3
    • Google+
    • Mostra profilo
    • MeToo
  • Dispositivo Android:
    GT-S5570
  • Play Store ID:
    MeToo
  • Sistema operativo:
    Windows 7
Re:Creazione WallPaper e Live Wallpaper
« Risposta #1 il: 12 Febbraio 2012, 18:24:18 CET »
0
Sono un novello di android e vorrei imparare a fare qualche applicazione.
Se conosci Java non ci sono problemi...  ;-)

Il mio primo obiettivo è creare un semplice Wallpaper che mi carichi a rotazione delle immagini da impostare come sfondo.
Quindi, un Live Wallpaper (da qui in poi: LWP) che cambia l'immagine di sfondo...

Ho cercato nei vari forum e nella guida on line su google ma ho solamente trovato come costruire e disegnare un wall paper, non come visualizzare una immagine predefinita come wallpaper.
Qualcuno conosce il comando e/o procedura per visualizzare come wallpaper una immagine predefinita (ad esempio una foto)?

Un LWP è essenzialmente un'estensione della classe WallpaperService, che a sua volta contiene un'estensione della classe Engine.
All'interno di questa classe possono essere caricate delle immagini, ad esempio all'interno di un vettore:
Codice: [Seleziona]
private Bitmap[] sfondi={
                BitmapFactory.decodeResource(getResources(), R.drawable.sfondo1),
                BitmapFactory.decodeResource(getResources(), R.drawable.sfondo2),
                BitmapFactory.decodeResource(getResources(), R.drawable.sfondo3)
};


Queste immagini verranno poi 'disegnate' a schermo all'interno del metodo onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) di Engine:
Codice: [Seleziona]
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
           
            final SurfaceHolder holder = getSurfaceHolder();

            Canvas c = null;
            try {                   
                c = holder.lockCanvas();
                if (c != null) {
                     final Paint p=mPaint;               
                     c.save();
                     c.drawBitmap(sfondi[numero_sfondo], 0, 0, mPaint);
                }
            } finally {if (c != null) holder.unlockCanvasAndPost(c);}
 
}
A questo punto è semplice cambiare l'immagine visualizzata...  ;-)
Il web è farcito di tutorial su come si scrivono i LWP, ad esempio:

Android Live Wallpaper - Tutorial
Live Wallpapers | Android Developers
Live Wallpaper Tutorial «  Android Invasion



Ho poi notato che ci sono dei simpatici LiveWallPaper nel market store? Ad esempio un'immagine di uno sfondo di pini innevati con la neve che cade. Qualcuno mi sa dire come si possono realizzare? SOno delle gif che vengono visualizzate oppure le animazioni vengono create da codice con OpenGL ?
GRazie, ciao!
Gli sfondi animati sono fatti con lo stesso motore, certo, c'è da scrivere qualche linea di codice in più!  :-P