[Android]画像を扱った時にOutOfMemoryに悩まされる

しばらーく投稿をしていませんでしたが、「ひらがなかこう」を作ってまして、いろいろ難航しました。一番の難航は3.0系や4.0系では、比較的、落ちにくいんですが、2.0(2.2以降)台だと、ちょっとbitmapを扱うと、すぐOutOfMemoryでクラッシュします。まぁ、いろいろ調べると2.2系に対応するのであれば、特にbitmapやViewにセットした画像をクリーンアップしないと、すぐメモリ不足だと怒られてしまいます。以下に、ある程度の解決策をメモとして残します。

(1)bitmapは使わなくなったらすぐリサイクル

(2)bitmapを読み込むときはConfig.ARGB_4444(or  RGB_565)を使う。ひらがなかこうはレイヤーで書き順描画しているのでアルファが必要なためARGB_4444を使う。

(3)inSampleSizeで読み込みサイズをダウン。2にすると面積比1/4になる。けど粗くなる・・・

あと、ScrollViewからの画面遷移時にOutOfMemoryがでまくった。これはScrollViewをクリーンナップすることででなくなった。

画面遷移する前に、ScrollViewの位置のみを保持して、DrawableなViewを上の手続きで処理すればメモリー不足に陥ることはなくなった。が、いろいろ使ってみないとわからないし、手元に2.2系の実機がないのでエミュレーターのみのチェックとなってしまい、少々不安。。。こんなことなら、スマホは2.3のままにしとけばよかった・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください