puedo - Android: cómo configurar la imagen del fondo de pantalla
porque no puedo cambiar mi fondo de pantalla en mi celular (4)
¿Es posible establecer la imagen del fondo de pantalla de Android programáticamente? Me gustaría crear un servicio que descargue una imagen de la web y actualice el fondo de la pantalla de inicio periódicamente.
Desde esta página en el sitio del desarrollador:
public void setStream (InputStream data)
Cambia el fondo de pantalla del sistema actual a una secuencia de bytes específica. El comando InputStream se copia en un almacenamiento persistente y ahora se usará como fondo de pantalla. Actualmente debe ser una imagen JPEG o PNG.
OK He aquí cómo hacerlo antes de la API 2.0:
Debe llamar a getApplicationContext.setWallpaper () y pasarle el mapa de bits.
Este método ahora está en desuso. Consulte la respuesta de ChrisF para obtener detalles sobre el nuevo método.
Si tiene URL de imagen, use
WallpaperManager wpm = WallpaperManager.getInstance(context);
InputStream ins = new URL("absolute/path/of/image").openStream();
wpm.setStream(ins);
Si tiene URI de imagen, use
WallpaperManager wpm = WallpaperManager.getInstance(context);
wpm.setResource(Uri.of.image);
En tu archivo de manifiesto:
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
Si tiene un mapa de bits de imagen, agregará esta función para establecer como fondo de pantalla:
public void SetBackground(int Url) {
try {
File file = new File("/sdcard/sampleimage");
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), Url);
bitmap.compress(CompressFormat.JPEG, 80, new FileOutputStream(file));
Context context = this.getBaseContext();
context.setWallpaper(bitmap);
Toast.makeText(getApplicationContext(), "Wallpaper has been set", Toast.LENGTH_SHORT).show();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
deberías agregar permiso para esto
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
espero que funcione