在flutter中设置来自资产图像的壁纸



我正在创建一个具有壁纸功能的flutter应用程序。为了实现这一点,我使用了flatter_wallpaper_manager包和flatter_cache_manager。但是高速缓存管理器不直接使用资产CCD_ 1。或者我错过了什么?

onTap: () async {
int location = WallpaperManager.HOME_SCREEN;
var path = await DefaultCacheManager()
.getSingleFile(widget.img.toString());
bool result = await WallpaperManager
.setWallpaperFromFile(
path.path, location);
},

缓存管理器从URL获取,而不是从资产获取。如何使壁纸功能正常工作?

我花了很长时间才找到解决方案,于是我选择了这个选项。

enter code here
Future<void> setWallpaper() async {
try {
final byteData = await rootBundle.load('assets/5.jpg');
final file = File('${(await getTemporaryDirectory()).path}/5.jpg');
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
int location = WallpaperManager
.BOTH_SCREEN; // or location = WallpaperManager.LOCK_SCREEN;
final bool result =
await WallpaperManager.setWallpaperFromFile(file.path, location);
print(result);
} on PlatformException {}
}

最新更新