// 第一步:获取WallpaperManager对象
WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
// 第二步:获取当前壁纸Drawable
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
// 第三步(可选):获取Drawable对应的Bitmap
Bitmap wallpaperBitmap = ((BitmapDrawable)wallpaperDrawable).getBitmap();
如果需要添加蒙层,如添加一个颜色为#1f1f1f,不透明度为20%的蒙层:
private void getSysBackground2View(View view) {
// 获取WallpaperManager和当前壁纸Drawable
WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
// 计算alpha值(20% 的不透明度)
int alpha = (int) (255 * 0.20);
// 定义颜色值,0x1f1f1f + alpha值
int overlayColor = Color.argb(alpha, 0x1F, 0x1F, 0x1F);
// 创建一个颜色Drawable
Drawable overlayDrawable = new ColorDrawable(overlayColor);
// 创建LayerDrawable来合并壁纸和颜色Drawable
Drawable[] layers = new Drawable[2];
layers[0] = wallpaperDrawable;
layers[1] = overlayDrawable;
LayerDrawable layeredDrawable = new LayerDrawable(layers);
// 设置组合后的Drawable为view的背景
view.setBackground(layeredDrawable);
}