2010-02-05 25 views
7

Eventuali duplicati:
Android - how to set the wallpaper imageAndroid - Come impostare l'immagine dello sfondo?

Quello che sto cercando di fare è, impostare lo sfondo utilizzando un'immagine URI (senza ritaglio)

Sono un noob a dev su Android e dev in generale. Internet mi ha fallito ... nel fornire il codice per impostare lo sfondo.

il sito di risorse dev dice

public void setStream (InputStream data)

ma io non lo capisco, alcuni esempi di codice sarebbe di grande aiutarmi.

+0

Correlati: [Android: come impostare l'immagine dello sfondo] (http://stackoverflow.com/questions/1964193/android-how-to-set-the-wallpaper-image) – McDowell

risposta

3

Se si dispone dell'URL dell'immagine, è possibile aprire la risorsa che rappresenta utilizzando lo stream (astrazione): new URL("your.image.url.com").openStream(). Questa chiamata al metodo restituirà un oggetto di tipo InputStream che è possibile passare come argomento al metodo setStream().

Se non volete specificare direttamente un flusso, è possibile aprire il flusso remoto, creare una bitmap e poi o utilizzare un'istanza WallpaperManager o fare un context.setWallpaper(bitmap) (questo è deprecato) Per impostare la bitmap come la carta da parati.

Per riferimento, consultare this thread.

+0

Questo è il mio codice corrente .. InputStream is = getContentResolver(). OpenInputStream (imageUri); bgImage = BitmapFactory.decodeStream (is); Contesto contesto = this.getBaseContext(); context.setWallpaper (bgImage); ' Errori a bgImage (linea 2 e 4) e getBaseContext() (linea 3) anche che cosa è la differenza fra un URI e un URL? La risposta breve che ho ricevuto è "Un URL è un URI ma, un URI non è un URL" –

+0

ok ho corretto gli errori sulle righe 2 e 4, non ho definito il bitmap bgImage. ma ancora errori su getBaseContext() –

+0

Sai che puoi passare un'istanza di Attività come Contesto giusto? Non c'è bisogno di fare un this.getBaseContext() puoi passare l'istanza dell'attività corrente o un oggetto contesto se ne hai uno ["questo" sarebbe un oggetto contesto valido] – Samuh

11

Salve è possibile utilizzare questo codice se si dispone di percorso immagine.

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

se si dispone di un'immagine URI quindi utilizzare questo

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

farmi sapere se c'è qualche problema.

+0

che cosa è l'uso di questa linea? wallpaperDrawable = wallpaperManager.getDrawable(); –

Problemi correlati