android 怎样用代码设置墙纸

                String imageUrl = ImageList.get(currentIndex);
                String imagePath = drawableManager.getImagePath(imageUrl);
                try {
//                    getApplicationContext().setWallpaper(getWrapperBitmap(new BitmapDrawable(BitmapFactory.decodeFile(imagePath))));
//                    getApplicationContext().setWallpaper(drawableManager.getFixBitmap(width * 2, height, imagePath));
//                    Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
                    WallpaperManager instance = WallpaperManager.getInstance(this);
                    int desiredMinimumWidth = instance.getDesiredMinimumWidth();
                    int desiredMinimumHeight = instance.getDesiredMinimumHeight();
                    instance.setBitmap(drawableManager.getFixBitmap(desiredMinimumWidth, desiredMinimumHeight, imagePath));
                    Toast.makeText(this, "墙纸设置成功!", Toast.LENGTH_SHORT).show();
                } catch (IOException e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    Toast.makeText(this, "墙纸设置失败!", Toast.LENGTH_SHORT).show();
                }


关键的部分是通过WallpaperManager拿到期望的墙纸的宽度 高度,然后再把图片等比缩放到这样的宽高就行了。

你可能感兴趣的:(android)