从媒体库加载缩略图时应用程序崩溃
本文关键字:应用程序 崩溃 略图 媒体库 加载 | 更新日期: 2023-09-27 18:26:11
我正在windows phone 8应用程序中集成图片库。
以下是xaml代码:
<phone:LongListSelector Name="listdata" LayoutMode="Grid"
JumpListStyle="{StaticResource JumpListStyle}" GridCellSize="147,147">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Border BorderBrush="White" BorderThickness="1">
<Image Source="{Binding thumbnail}" Height="147" Width="147"/>
</Border>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
这是图像模型类:
public class imagemodel
{
public WriteableBitmap thumbnail { get; set; }
public string name { get; set; }
public Picture image;
private Picture picture;
public imagemodel(Picture pic)
{
image = pic;
name = pic.Name;
thumbnail = PictureDecoder.DecodeJpeg(pic.GetThumbnail());
}
}
MediaLibrary lib=新的MediaLibrary();
public void loadmygallery()
{
foreach (var picture in lib.Pictures)
{
imagemodel im = new imagemodel(picture);
collection.Add(im);
}
}
该应用程序在打开图库页面时崩溃。这可能是由于内存过载,如果我将缩略图显示限制为30或不是一个很高的数字,代码运行良好。有没有办法仍然显示所有缩略图??
由于上下文很少,而且我看不出图像是如何处理的,所以我很难告诉你你的错误,但是。。。。我认为缩略图不是原因,如果它确实工作良好,当你限制计数。试着修改你的代码,不要存储图像,通常程序会将缩略图缓存到一个单独的文件中,或者在更糟糕的情况下缓存到内存中(只是因为每次都需要完全处理图像,所以很糟糕)并显示缩略图,这样你的应用程序就不会将所有媒体库存储到ram中。图像本身只有在打开时才能读取。