2010-02-05 13 views
7

Duplicar posible:
Android - how to set the wallpaper imageAndroid - Cómo configurar la imagen del fondo de pantalla?

lo que estoy tratando de hacer es, establecer el fondo de pantalla utilizando una imagen URI (sin cultivo)

soy un novato en dev en Android y dev en general. Internet me ha fallado ... al proporcionar código para establecer el fondo de pantalla.

el sitio de recursos dev dice

public void setStream (InputStream data)

pero yo no lo entienden, un código de ejemplo ¿Importa.

+0

Relacionados: [Android - cómo establecer la imagen del fondo de pantalla] (http://stackoverflow.com/questions/1964193/android-how-to-set-the-wallpaper-image) – McDowell

Respuesta

3

Si tiene la URL de la imagen puede abrir el recurso que representa usando la secuencia (abstracción): new URL("your.image.url.com").openStream(). Esta llamada a método devolverá un objeto de tipo InputStream que puede pasar como argumento al método setStream().

Si no desea especificar una corriente directa, se puede abrir el flujo remoto, cree un mapa de bits y luego o bien utilizar una instancia WallpaperManager o hacer una context.setWallpaper(bitmap) (esto está en desuso) para establecer el mapa de bits como fondo de pantalla.

Como referencia, eche un vistazo al hilo this.

+0

Este es mi código actual. InputStream is = getContentResolver(). OpenInputStream (imageUri); bgImage = BitmapFactory.decodeStream (es); Contexto context = this.getBaseContext(); context.setWallpaper (bgImage); ' errores en bgImage (línea 2 y 4) y getBaseContext() (línea 3) también cuál es la diferencia entre un URI y una URL? La respuesta corta que obtuve fue "Una URL es una URI, pero una URI no es una URL" –

+0

bien, corregí los errores en las líneas 2 y 4, no definí Bitmap bgImage. pero aún errores en getBaseContext() –

+0

¿Sabe que puede pasar una instancia de Actividad como contexto, ¿verdad? No es necesario hacer this.getBaseContext() puede pasar instancia de actividad actual o un objeto de contexto si tiene uno ["this" sería un objeto de contexto válido] – Samuh

11

Hola, puedes usar este código si tienes la ruta de la imagen.

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 tiene una imagen URI entonces utilizar este

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

Avísame si hay algún problema.

+0

¿de qué sirve esta línea? wallpaperDrawable = wallpaperManager.getDrawable(); –

Cuestiones relacionadas