Android – 如何设置壁纸图像
是否有可能以编程方式设置Android壁纸图像? 我想创build一个服务,从网上下载图像,并定期更新主屏幕壁纸。
从开发者网站上的这个页面 :
public void setStream (InputStream data)
将当前的系统壁纸更改为特定的字节stream。 给InputStream复制到持久存储,现在将被用作壁纸。 目前它必须是JPEG或PNG图像。
如果你有图片的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>
如果你有图像的位图比你将添加此function设置为壁纸:
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>
希望它能工作
OK以下是如何在api 2.0之前完成的:
您需要调用getApplicationContext.setWallpaper()并将其传递给位图。
此方法现在已被弃用。 有关新方法的详细信息,请参阅ChrisF的答案。