1. ホーム
  2. android

[解決済み] Android: Bitmap recycle() はどのように動作するのですか?

2023-02-24 02:38:37

質問

例えば、次のようなビットマップオブジェクトに画像を読み込んだとします。

Bitmap myBitmap = BitmapFactory.decodeFile(myFile);

では、次のような別のビットマップを読み込むとどうなるでしょうか。

myBitmap = BitmapFactory.decodeFile(myFile2);

最初のmyBitmapはどうなるのでしょうか?ガーベッジコレクションされるのでしょうか、それとも別のビットマップをロードする前に手動でガーベッジコレクションしなければならないのでしょうか、例えば。 myBitmap.recycle() ?

また、大きな画像を読み込んで、途中でリサイクルしながら次々と表示させる良い方法はないでしょうか?

どのように解決するのですか?

最初のビットマップは ガベージコレクション をデコードすると、2つ目の ガベージコレクタ は後でいつでもそれを行います。もし、早急にメモリを解放したい場合は recycle() を呼び出す必要があります。

もし本当に大きな画像を読み込みたいなら、リサンプリングする必要があります。以下はその例です。 ビットマップオブジェクトに画像を読み込む際にメモリ不足になる問題 .