Xử lý bitmap
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Thử cách Compose
Jetpack Compose là bộ công cụ giao diện người dùng được đề xuất cho Android. Tìm hiểu cách hiển thị đồ hoạ trong Compose.
Có một số lý do khiến việc tải bitmap trong ứng dụng Android của bạn gặp khó khăn:
- Bitmaps có thể dễ dàng làm cạn kiệt ngân sách bộ nhớ của ứng dụng. Chẳng hạn như máy ảnh trên điện thoại Pixel chụp ảnh lên đến 4048x3036 pixel (12 megapixel).
Nếu cấu hình bitmap được sử dụng là
ARGB_8888
, mặc định cho Android 2.3 (API cấp 9) trở lên, việc tải một ảnh vào bộ nhớ sẽ chiếm khoảng 48 MB bộ nhớ (4048*3036*4 byte). Nhu cầu bộ nhớ lớn như vậy có thể ngay lập tức sử dụng hết bộ nhớ có sẵn cho ứng dụng.
- Việc tải bitmap trên luồng giao diện người dùng có thể làm giảm hiệu suất của ứng dụng, gây ra tình trạng phản hồi chậm hoặc thậm chí là hiển thị thông báo ANR. Do đó, điều quan trọng là phải quản lý luồng một cách phù hợp khi làm việc với bitmap.
- Nếu ứng dụng của bạn đang tải nhiều bitmap vào bộ nhớ, bạn cần quản lý bộ nhớ đệm và bộ nhớ đệm của ổ đĩa một cách khéo léo. Nếu không, khả năng phản hồi và tính linh hoạt của giao diện người dùng ứng dụng có thể bị ảnh hưởng.
Đối với hầu hết các trường hợp, bạn nên sử dụng thư viện Glide để tìm nạp, giải mã và hiển thị bitmap trong ứng dụng của mình. Glide tóm tắt hầu hết độ phức tạp trong việc xử lý các tác vụ này và những tác vụ khác liên quan đến việc sử dụng bitmap và các hình ảnh khác trên Android.
Để biết thông tin về cách sử dụng và tải Glide, vui lòng truy cập vào
Kho lưu trữ Glide trên GitHub.
Bạn cũng có thể chọn sử dụng trực tiếp các API cấp thấp hơn được tích hợp trong khung Android.
Để biết thêm thông tin về cách sử dụng này, vui lòng tham khảo bài viết Tải các đối tượng Bitmap lớn một cách hiệu quả, Lưu các Bitmap vào bộ nhớ đệm và Quản lý bộ nhớ trên Bitmap.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-26 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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--------------"]]