.NET9 MAUI Android应用从平板启动时Image控件更新显示空白
.NET 9 MAUI Android应用中Image控件更新后显示白框问题
我在.NET 9的MAUI Android应用中遇到Image控件无法正常更新的问题,更新后原图像被白框替代。
相关代码
My命令实现
[RelayCommand] public async Task My(object parameter) { if (parameter is Border border) { // var tempImagePath = Path.Combine(FileSystem.AppDataDirectory, $"temp_image2.png"); var tempImagePath = "/storage/7376-B000/films/clavier/clavier.mkv"; var skImage = await GenerateThumbnailAsync(tempImagePath); SKData? skData = skImage?.Encode(SKEncodedImageFormat.Png, quality: 80); ThumbnailSKDatas.Add(skData); var image = ImageSource.FromStream(() => skData.AsStream()); MainThread.BeginInvokeOnMainThread(async () => { border.Content = new Image() { Source = image }; await Task.Delay(1500); }); } }
GenerateThumbnailAsync方法实现
private async Task<SKImage?> GenerateThumbnailAsync(string file) { var bitmap = await GetThumbnailBitmapFromVideoFile(file); return bitmap?.ToSKImage(); // 方法来自SkiaSharp.Views包 }
关键注意点
- 最初尝试仅更新Image控件的Source属性(
<Image Source={Binding Image}/>),但同样无效 - skData对象数据有效:保存为PNG文件后可在Android Studio设备管理器中正常查看
- 在Jetbrains Rider调试模式下运行应用时图像可见,但断开USB从平板直接启动应用后,触发My方法的按钮点击无法显示图像,不过skData数据仍有效(保存后可生成正确图像)
- ThumbnailSKDatas是静态集合,用于避免skData被垃圾回收
内容的提问来源于stack exchange,提问作者lolveley
相关产品推荐
相关产品推荐

