ZipFile ~画像サイズが大きいと読み込み失敗

 先日のZipから画像を読み込む method に不具合があった。
 どうもBitmapFactory の時点で、読み込みミスをしているようす…。

 調べてみると、同様の症状に行き着いた。
http://groups.google.com/group/android-group-japan/browse_thread/thread/197c76b8fb3a8cc6?fwc=1
 どうやら、画像のデータサイズが大きいと、InputStream が読み込みミスをするらしい。
 回避するには、一度どこかに解凍してから、読み込むしかなさそう。

※.キャッシュファイルの保存
https://sites.google.com/a/techdoctranslator.com/jp/android/guide/data-storage

どのくらいだと大きい?

 素朴な疑問。
 サイズが大きいって、どのくらいだと大きいの? (?_?)

 読み込もうとしたのは、800×600のJPG。
 先日の試作アプリでは問題なかったものなんだ。
 じゃ、なにがちがうのかといえば、アプリ。
 不具合が出たのは、作ってるノベルアプリに組み込んでからなんだ。
 だから最初はノベルアプリを疑ったんだけど、そうじゃなさそうなのは前記のとおり。
 ではナニが制約になってるのかというと、たぶんヒープなんじゃないかと思う。

 試作アプリはZIP関係のClass しかないような状態で、ヒープに余裕がある。
 一方、ノベルアプリは色々と組み込んでいるから、ヒープに余裕があまりない。

 どのくらいだと”大きすぎる”かは、一概にいえないんじゃないかな?
 そういうワケで。
 直接メモリーに展開するのは、避けた方がよさそう。
 ”小さい”と思っていても、ヒープからすると「すごく大きいです…」になるかもしれないから。(w

by the way…

 原因を調べている途中で、BitmapFactory.Options なるものを見かけたよ。
 これを使うと、解像度や色数、サイズなんかを指定して、読み込めるらしい。
 GIFやPNG、サムネールなんかにはよさげなオプションだね。

※.コチラのページが詳しいです。
http://d.hatena.ne.jp/hyoromo/20101001/1285943744

Posted in File, 読み込み. Tags: , , , . ZipFile ~画像サイズが大きいと読み込み失敗 はコメントを受け付けていません。 »