Obsługa map bitowych
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wypróbuj sposób tworzenia wiadomości
Jetpack Compose to zalecany zestaw narzędzi UI na Androida. Dowiedz się, jak wyświetlać grafikę w funkcji Compose
Wczytywanie map bitowych w aplikacji na Androida może być trudne z kilku powodów:
- Mapy bitowe mogą bardzo łatwo wyczerpać budżet pamięci aplikacji. Na przykład aparat w telefonie Pixel może robić zdjęcia w rozdzielczości do 4048 x 3036 pikseli (12 megapikseli).
Jeśli używana jest konfiguracja bitmapy
ARGB_8888
, czyli domyślnie w Androidzie 2.3 (poziom interfejsu API 9) i nowszych, wczytywanie pojedynczego zdjęcia do pamięci zajmuje około 48 MB pamięci (4048 × 3036 × 4 bajty). Tak duże zapotrzebowanie na pamięć może natychmiast wykorzystać całą pamięć dostępną dla aplikacji.
- Wczytywanie map bitowych w wątku interfejsu może pogorszyć wydajność aplikacji, powodując powolne czasy reakcji, a nawet komunikaty o błędach ANR. Dlatego tak ważne jest prawidłowe zarządzanie wątkami podczas pracy z mapami bitowymi.
- Jeśli aplikacja wczytuje do pamięci wiele map bitowych, musisz umiejętnie zarządzać pamięcią i buforowaniem dysku. W przeciwnym razie responsywność i płynność interfejsu aplikacji mogą ulec pogorszeniu.
W większości przypadków zalecamy używanie biblioteki Glide do pobierania, dekodowania i wyświetlania bitmap w aplikacji. Glide to narzędzie, które eliminuje większość złożoności przy obsłudze tych i innych zadań związanych z pracą z mapami bitowymi i innymi obrazami na Androidzie.
Informacje o używaniu i pobieraniu Glide znajdziesz w repozytorium Glide na GitHubie.
Możesz też zdecydować się na bezpośrednią współpracę z interfejsami API niższego poziomu wbudowanymi w platformę Androida.
Więcej informacji na ten temat znajdziesz w artykułach Loading Large Bitmaps Efficiently (Wydajne ładowanie dużych map bitowych), Buforowanie map bitowych i Zarządzanie pamięcią bitmap.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-06-28 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Brak potrzebnych mi informacji"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nieaktualne treści"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem z tłumaczeniem"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem z przykładami/kodem"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Inne"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Łatwo zrozumieć"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Rozwiązało to mój problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Inne"
}]
{"lastModified": "Ostatnia aktualizacja: 2024-06-28 UTC."}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-06-28 UTC."]]