我正在尝试使用代码更改Android壁纸。我正在使用WallpaperManager类,但没有占上风。我在/ drawable目录中使用了.png图像。我收到一个错误,上面写着“原始类型的预期资源”。当我运行应用程序时(当该方法运行时),它崩溃了。我必须成为一个非常愚蠢的错误的受害者。方法changeWallpaper()在用户点击按钮后运行。这是我的代码:
public void changeWallpaper(View view) {
try{
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
wallpaperManager.setResource(R.drawable.material_wallpaper);
String successMessage = "Wallpaper Changes";
Toast.makeText(this, successMessage, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
String failedMessage = "Operation failed";
Toast.makeText(this, failedMessage, Toast.LENGTH_SHORT).show();
}
}
编辑:我的/ res /目录中没有“raw”文件夹。
答案 0 :(得分:2)
如果您想继续使用Drawable,可以将资源转换为位图,然后使用setBitmap(Bitmap _bitmap)
将其设置为墙纸(参见WallpaperManager)。
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getActivity().getApplicationContext());
Bitmap bitmap = BitmapFactory.decodeResource(getActivity().getResources(), R.drawable.material_wallpaper);
wallpaperManager.setBitmap(bitmap);