如何从ImageView将图像设置为墙纸?

时间:2013-03-15 03:26:40

标签: android imageview wallpaper

我有一个活动,其中有两个按钮和一个ImageView。一个按钮是从手机的相机应用程序中取出图像并将其设置为ImageView,而其他按钮是将该图像设置为主屏幕壁纸,所以我想要代码如何将此图像从ImageView设置为壁纸? ??????

3 个答案:

答案 0 :(得分:14)

第1步:获取附加到ImageView的图像。

Setp 2:将该图片设为壁纸。

第3步:AndroidManifest.xml中添加权限以设置壁纸!

对于第1步,请检查This answer!

imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();

对于第2步:

WallpaperManager m=WallpaperManager.getInstance(this);

try {
    m.setBitmap(bmap);
} catch (IOException e) {
    e.printStackTrace();
}

对于第3步: 也包括此权限。

<uses-permission android:name="android.permission.SET_WALLPAPER" />

告诉我这是否对您不起作用!

答案 1 :(得分:5)

这可以分两部分来解答。

首先是设置WallPaper

WallpaperManager wallManager = WallpaperManager.getInstance(getApplicationContext());
try {
    wallManager.setBitmap(bmpImg);
    Toast.makeText(MainActivity.this, "Wallpaper Set Successfully!!", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
    Toast.makeText(MainActivity.this, "Setting WallPaper Failed!!", Toast.LENGTH_SHORT).show();
}

第二部分有点可选,只有在你没有为你的ImageView设置位图时才进入图片。 在这种情况下,您需要在设置WallPaper 之前执行此步骤:

Bitmap bmpImg = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();

答案 2 :(得分:0)

用于设置壁纸:

            Bitmap bitmapImg = ((BitmapDrawable) YourImageView.getDrawable()).getBitmap();

            WallpaperManager wallManager = WallpaperManager.getInstance(getApplicationContext());
            try {
                wallManager.clear();
                wallManager.setBitmap(bitmapImg);


            } catch (IOException ex) {

            }

您必须在清单文件中添加两个权限

1. <uses-permission android:name="android.permission.SET_WALLPAPER" />
2. <uses-permission android:name="android.permission.WRITE_SETTINGS" />