如何通过编程设置安卓壁纸图片?我希望创建一个服务,可以定期从网络上下载图片并更新主屏幕壁纸。
如果您有图像URL,则使用
WallpaperManager wpm = WallpaperManager.getInstance(context);
InputStream ins = new URL("absolute/path/of/image").openStream();
wpm.setStream(ins);
如果您有图像URI,请使用
WallpaperManager wpm = WallpaperManager.getInstance(context);
wpm.setResource(Uri.of.image);
在你的清单文件中:
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
以下内容摘自开发者网站上的此页面:
public void setStream (InputStream data)
更改当前系统壁纸为特定字节流。给定的输入流将被复制到持久存储中,并将用作壁纸。目前必须是JPEG或PNG图像。 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();
}
}
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
希望它能够正常工作。
在 API 2.0 之前,以下是如何操作:
需要调用 getApplicationContext.setWallpaper() 并传递位图。
该方法现已过时。有关新方法的详细信息,请参见 ChrisF 的回答。