2010-02-05 4 views
7

Possible en double:
Android - how to set the wallpaper imageAndroid - Comment configurer l'image de fond d'écran?

Ce que je suis en train de faire est, définir le fond d'écran en utilisant une URI image (pas de culture)

Je suis un noob à dev sur Android et dev en général. L'Internet m'a échoué ... sur la fourniture de code pour définir le fond d'écran.

oui le site des ressources dev dit

public void setStream (InputStream data)

mais je ne comprends pas, un exemple de code me aiderait grandement.

+0

Connexe: [Android - comment définir l'image de fond d'écran] (http://stackoverflow.com/questions/1964193/android-how-to-set-the-wallpaper-image) – McDowell

Répondre

3

Si vous avez l'URL de l'image, vous pouvez ouvrir la ressource qu'il représente en utilisant le flux (abstraction): new URL("your.image.url.com").openStream(). Cet appel de méthode renvoie un objet de type InputStream que vous pouvez passer en argument à la méthode setStream().

Si vous ne souhaitez spécifier un flux directement, vous pouvez ouvrir le flux à distance, créer un Bitmap puis soit utiliser une instance WallpaperManager ou faire un context.setWallpaper(bitmap) (ce qui est dépréciée) pour définir votre bitmap comme fond d'écran.

Pour référence, jetez un oeil au fil this.

+0

Ceci est mon code actuel .. InputStream est = getContentResolver(). OpenInputStream (imageUri); bgImage = BitmapFactory.decodeStream (est); Contexte context = this.getBaseContext(); context.setWallpaper (bgimage); ' erreurs à bgimage (ligne 2 et 4) et getBaseContext() (ligne 3) également ce qui est la différence entre un URI et un URL? Réponse courte que j'ai eu était "Une URL est un URI mais, un URI n'est pas une URL" –

+0

ok j'ai corrigé les erreurs sur les lignes 2 et 4, je n'ai pas défini le Bitmap bgImage. mais encore des erreurs sur getBaseContext() –

+0

Vous savez que vous pouvez passer une instance de l'activité en tant que contexte droit? Pas besoin de faire un this.getBaseContext() vous pouvez passer l'instance de l'activité courante ou un objet contexte si vous en avez un ["this" serait un objet contextuel valide] – Samuh

11

Bonjour, vous pouvez utiliser ce code si vous avez un chemin d'image.

is = new FileInputStream(new File(imagePath)); 
bis = new BufferedInputStream(is); 
Bitmap bitmap = BitmapFactory.decodeStream(bis); 
Bitmap useThisBitmap = Bitmap.createScaledBitmap(
    bitmap, parent.getWidth(), parent.getHeight(), true); 
bitmap.recycle(); 
if(imagePath!=null){ 
    System.out.println("Hi I am try to open Bit map"); 
    wallpaperManager = WallpaperManager.getInstance(this); 
    wallpaperDrawable = wallpaperManager.getDrawable(); 
    wallpaperManager.setBitmap(useThisBitmap); 

si vous avez l'image URI utilisez cette

wallpaperManager = WallpaperManager.getInstance(this); 
wallpaperDrawable = wallpaperManager.getDrawable(); 
mImageView.setImageURI(imagepath); 

Laissez-moi savoir s'il y a un problème.

+0

quelle est l'utilisation de cette ligne? fond d'écranDrawable = wallpaperManager.getDrawable(); –

Questions connexes