获取桌面的壁纸来设成背景
第一种方法,可直接设置主题,
下面重点介绍第二种方法:
- // 获取壁纸管理器
- WallpaperManager wallpaperManager = WallpaperManager
- .getInstance(mContext);
- // 获取当前壁纸
- Drawable wallpaperDrawable = wallpaperManager.getDrawable();
- // 将Drawable,转成Bitmap
- Bitmap bm = ((BitmapDrawable) wallpaperDrawable).getBitmap();
- // 需要详细说明一下,mScreenCount、getCurrentWorkspaceScreen()、mScreenWidth、mScreenHeight分别
- //对应于Launcher中的桌面屏幕总数、当前屏幕下标、屏幕宽度、屏幕高度.等下拿Demo的哥们稍微要注意一下
- float step = 0;
- // 计算出屏幕的偏移量
- step = (bm.getWidth() - LauncherPreferenceModel.mScreenWidth)
- / (LauncherPreferenceModel.mScreenCount - 1);
- // 截取相应屏幕的Bitmap
- Bitmap pbm = Bitmap.createBitmap(bm, (int) (mLauncher
- .getCurrentWorkspaceScreen() * step), 0,
- (int) (LauncherPreferenceModel.mScreenWidth),
- (int) (LauncherPreferenceModel.mScreenHeight));
- // 设置 背景
- layout.setBackgroundDrawable(new BitmapDrawable(pbm));