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