Mam opublikowaną aplikację, która ulega awarii podczas uruchamiania systemu Android N, gdy nowo wprowadzone Display size
ustawienie systemu operacyjnego ma zbyt dużą wartość.
Kiedy patrzę w logcat, widzę następujący komunikat:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
W mojej pierwszej aktywności prześledziłem problem do ImageView, który pokazuje ładny, duży obraz tła. Obraz, o którym mowa, ma rozmiar 2048x1066 i znajduje się w moim drawables
katalogu ogólnym , więc bez względu na gęstość będzie używany.
Wszystko działa dobrze, gdy Display size
jest to ustawienie Small
. Ale kiedy podchodzę Default
, przestaje działać. Jeśli następnie zamienię obraz na mniejszy, działa Default
, ale jeśli podejdę do Large
, przestaje działać.
Domyślam się, że dostosowanie w Display size
górę powoduje, że Twoje urządzenie zachowuje się jak fizycznie mniejsze urządzenie z większą gęstością pikseli. Ale nie rozumiem, co mam tutaj zrobić. Jeśli wstawię stopniowo mniejsze obrazy dla coraz wyższych rozdzielczości, nie będzie to dobrze wyglądać na faktycznie dużych wyświetlaczach. A może czegoś nie rozumiem?
Wszelkie wskazówki byłyby bardzo mile widziane.
res/drawable/
to synonimres/drawable-mdpi/
. Jeśli chcesz, aby obraz nie był skalowany na podstawie gęstości, użyjres/drawable-nodpi/
lubres/drawable-anydpi/
.