ビットマップの処理
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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 および関連会社の商標または登録商標です。
最終更新日 2024-06-28 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-06-28 UTC\u3002"}
[[["わかりやすい","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"]],["最終更新日 2024-06-28 UTC。"]]