在单声道为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