Android用のモノには、キャッシュの目的で画像をローカルストレージに保存するアプリがあります。アプリが起動すると、Web から画像を読み込もうとする前に、キャッシュから画像を読み込もうとします。
私は現在、ローカルストレージからそれらを読み込んでロードする良い方法を見つけるのに苦労しています.
私は現在、これと同等のものを使用しています:
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() は長さを示さないストリームを返すため、一度に 1 バイトずつ読み取る必要があります。また、シークもできません。これにより、画像の読み込みが通常より遅くなるようです。Resrouce.Drawable からの画像の読み込みは、比較するとほぼ瞬時に完了しますが、私の方法では、8kb ファイルを読み込むために、おそらく 300 ミリ秒の非常に顕著な一時停止があります。これは非常に明白なタスクのように思えますが、私は多くの解決策を試し、アドバイスを求めて多くのことを検索しましたが、役に立ちませんでした。
また、UI スレッドで実行されていない場合、このコードが EndOfStream 例外でクラッシュするように見えることにも気付きました。
どんな助けでも大歓迎です