1.获取壁纸显示在ImageView.
// 获取壁纸管理器的实例 final WallpaperManager wm = WallpaperManager.getInstance(this); // 获取到当前壁纸的drawable对象 final Drawable wallpaperDrawable = wm.getDrawable(); // 在imageView显示当前壁纸 imageView.setImageDrawable(wallpaperDrawable); // 将imageView转换成bitmap图像 imageView.setDrawingCacheEnabled(true);
2.修改图片并刷新ImageView显示
// 设置颜色滤镜,第一个参数表示颜色,第二个参数表示混合模式 wallpaperDrawable.setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY); //重新设置修改后的图像 imageView.setImageDrawable(wallpaperDrawable); //更新imageView imageView.invalidate();
3.将ImageView设置回桌面壁纸
//从ImageView中取出bitmap图像 Bitmap bitmap=imageView.getDrawingCache(); try { //重新设置背景 wm.setBitmap(bitmap); } catch (IOException e) { e.printStackTrace(); }
4.最后需要在AndroidManifest.xml中添加权限