Mam opublikowaną aplikację, która ulega awarii podczas uruchamiania systemu Android N, gdy nowo wprowadzone Display sizeustawienie 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 drawableskatalogu ogólnym , więc bez względu na gęstość będzie używany.
Wszystko działa dobrze, gdy Display sizejest 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 sizegó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/.