在單聲道爲Android我有一個應用程序,將圖像保存到本地存儲爲緩存目的。當應用程序啓動時,它會嘗試從緩存中加載圖像,然後嘗試從網絡加載它們。從單片機上的本地存儲讀取圖像文件爲Android
我目前很難找到從本地存儲讀取和加載它們的好方法。目前我使用的東西equivilant這個
:
List<byte> byteList = new List<byte>();
using (System.IO.BinaryReader binaryReader = new System.IO.BinaryReader(context.OpenFileInput("filename.jpg")))
{
while (binaryReader.BaseStream.IsDataAvailable())
{
byteList.Add(binaryReader.ReadByte());
}
}
return byteList.toArray();
OpenFileInput()返回不給我一個長度,所以我必須在每次讀取一個字節流。它也無法尋求。這似乎導致圖像加載速度比aughto慢得多。從Resrouce.Drawable加載圖像相比之下幾乎是瞬間的,但用我的方法有一個非常明顯的暫停,也許300毫秒,加載一個8kb的文件。這似乎是一個非常明顯的任務,但我已經嘗試了很多解決方案,並且搜索了很多建議,但無濟於事。
我也注意到這段代碼似乎在沒有在UI線程上運行時發生EndOfStream異常。
任何幫助將非常感激
'位圖位= BitmapFactory.DecodeStream(context.OpenFileInput( 「filename.jpg」));' 我的上帝......直接從文件流中直接加載圖片效果很好。當我真的沒有必要的時候,我覺得有必要首先將所有東西加載到一個字節數組中。感謝這一點,完美地解決了我的問題。 – battlebottle 2012-04-09 19:24:53