ビットマップの処理
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Compose を試す
Jetpack Compose は、Android に推奨される UI ツールキットです。Compose でグラフィックを表示する方法について学習します。
Android アプリでのビットマップの読み込みが難しい理由には、以下のようなものがあります。
- ビットマップはアプリのメモリ容量をすぐに使い果たします。たとえば、Google Pixel のカメラは最大で 4048x3036 ピクセル(12 メガピクセル)の写真を撮影できます。使用されているビットマップの設定が Android 2.3(API レベル 9)以降のデフォルトである
ARGB_8888
の場合、1 枚の写真をメモリに読み込むのに約 48 MB のメモリ(4048*3036*4 バイト)が必要になります。このようにメモリの需要が大きいと、アプリで使用できるすべてのメモリをすぐに使い果たしてしまいます。
- UI スレッドでビットマップを読み込むと、アプリのパフォーマンスが低下し、その結果、応答性が低下するだけでなく、ANR メッセージが表示されることさえあります。したがって、ビットマップを扱う際にはスレッドを適切に管理することが重要です。
- アプリで複数のビットマップをメモリに読み込む場合、メモリ キャッシュとディスク キャッシュを適切に管理する必要があります。そうしないと、アプリの UI の応答性が低下し、スムーズに表示されなくなる可能性があります。
ほとんどのケースでは、Glide ライブラリを使用してアプリのビットマップを取得、デコード、表示することをおすすめします。Glide を使用すると、Android におけるビットマップなどの画像の操作に関連するこうした複雑なタスクの処理を簡素化できます。Glide の使用方法とダウンロード方法については、GitHub の Glide リポジトリをご覧ください。
また、Android フレームワークに組み込まれている低レベル API を直接操作することもできます。その方法について詳しくは、大量のビットマップを効率的に読み込む、ビットマップのキャッシュ保存、ビットマップ メモリの管理をご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-26 UTC。"],[],[],null,["# Handling bitmaps\n\nTry the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to display graphics in Compose. \n[ImageBitmap →](/jetpack/compose/graphics/images/compare) \n\nThere are a number of reasons why loading bitmaps in your Android app is tricky:\n\n- Bitmaps can very easily exhaust an app's memory budget. For example, the camera on the [Pixel](https://www.android.com/phones/pixel/) phone takes photos of up to 4048x3036 pixels (12 megapixels). If the bitmap configuration used is [ARGB_8888](/reference/android/graphics/Bitmap.Config), the default for Android 2.3 (API level 9) and higher, loading a single photo into memory takes about 48MB of memory (4048\\*3036\\*4 bytes). Such a large memory demand can immediately use up all the memory available to the app.\n- Loading bitmaps on the UI thread can degrade your app's performance, causing slow responsiveness or even ANR messages. It is therefore important to manage threading appropriately when working with bitmaps.\n- If your app is loading multiple bitmaps into memory, you need to skillfully manage memory and disk caching. Otherwise, the responsiveness and fluidity of your app's UI may suffer.\n\n\nFor most cases, we recommend that you use the [Glide](https://github.com/bumptech/glide)\nlibrary to fetch, decode, and display bitmaps in your app. Glide abstracts out most of\nthe complexity in handling these and\nother tasks related to working with bitmaps and other images on Android.\nFor information about using and downloading Glide, visit the\n[Glide repository](https://github.com/bumptech/glide) on GitHub.\n\n\nYou can also opt to work directly with the lower-level APIs built into the Android framework.\nFor more information on doing so, refer to\n[Loading Large Bitmaps Efficiently](/topic/performance/graphics/load-bitmap),\n[Caching Bitmaps](/topic/performance/graphics/cache-bitmap), and\n[Managing Bitmap Memory](/topic/performance/graphics/manage-memory).\n\nMore resources\n--------------"]]