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

Muh*_*han 2 android wallpaper imageview

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

Sha*_*zal 14

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

第2步:将该图像设置为墙纸.

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

对于第1步,请检查答案!

imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
Run Code Online (Sandbox Code Playgroud)

对于第2步:

WallpaperManager m=WallpaperManager.getInstance(this);

try {
    m.setBitmap(bmap);
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

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

<uses-permission android:name="android.permission.SET_WALLPAPER" />
Run Code Online (Sandbox Code Playgroud)

告诉我,如果这不适合你!


Sid*_*ele 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();
}
Run Code Online (Sandbox Code Playgroud)

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

Bitmap bmpImg = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();
Run Code Online (Sandbox Code Playgroud)