안드로이드 용 모노에서 캐싱을 위해 이미지를 로컬 저장소에 저장하는 앱이 있습니다. 앱이 실행되면 웹에서 이미지를로드하기 전에 캐시에서 이미지를로드하려고 시도합니다.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는() 나는 한 번에 한 바이트를 읽을 필요 그래서 나에게 길이를 제공하지 않습니다 스트림을 반환합니다. 그것은 또한 찾을 수 없습니다. 이것은 이미지를로드하는 것보다 훨씬 느린 것 같습니다. Resrouce.Drawable에서 이미지를로드하는 것은 거의 비슷하지만, 내 방법은 8KB 파일을로드하는 데 아주 눈에 띄는 일시 중지 (아마도 300ms)가 있습니다. 이것은 할 수있는 것이 분명한 작업처럼 보입니다. 그러나 많은 솔루션을 시도하고 많은 조언을 구했으나 아무 소용이 없습니다.
나는이 코드가 UI 스레드에서 실행되지 않을 때 EndOfStream 예외로 인해 충돌하는 것으로 나타났습니다.
어떤 도움을 대단히
'비트 맵 비트 맵 = BitmapFactory.DecodeStream (context.OpenFileInput (이, 당신은 Path.GetTempPath 반환되는 대신
Context.FilesDir
의 Context.CacheDir을 사용해야 진정한 캐시입니다 "filename.jpg")); ' 세상에 ... 파일 스트림에서 곧바로 이미지를 로딩하면됩니다. 내가 정말로 필요가 없을 때 모든 것을 바이트 배열에 먼저로드 할 필요성을 느꼈다. 고마워, 내 문제를 완벽하게 해결. – battlebottle