先日の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