2014-10-11 102 views
0

我正在整合圖片庫在我的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> 

和這裏的imagemodel類:

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或不是非常高的數字,代碼運行良好。還有什麼方法可以顯示所有的縮略圖?

回答

0

由於沒有上下文,我也看不到圖像是如何處理的,所以我很難告訴你有關你的錯誤的更多信息,但是...... 我認爲縮略圖不是原因,如果它能工作當你限制計數時很好。 嘗試更改您的代碼不存儲圖像,通常會將縮略圖緩存到單獨的文件或更糟糕的情況下存儲到內存中(僅壞,因爲圖像需要每次都完全處理)並顯示縮略圖,以便您的應用程序不會存儲所有的媒體庫轉化爲內存。 圖像本身僅在打開時才被讀取。

+0

請參閱編輯以查看圖像在代碼中的處理方式 – 2014-10-11 12:17:45

+0

您可以將圖像計數限制爲10還是20,加載應用程序並檢查RAM的使用情況?同時讓我知道圖像大小(以MB爲單位) – Zero 2014-10-11 13:18:00

相關問題