У мене є опублікований додаток, який аварійно завершує роботу під час запуску на Android N, коли нещодавно введене Display size
налаштування ОС встановлено як занадто велике.
Коли я заглядаю в logcat, я бачу таке повідомлення:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
Я простежив проблему до ImageView у першій діяльності, що показує приємне велике фонове зображення. Зображення, про яке йде мова, має розмір 2048x1066 і знаходиться в моєму загальному drawables
каталозі, тому незалежно від щільності воно буде використано.
Все працює нормально, коли Display size
налаштування встановлено Small
. Але коли я піднімаюся Default
, він перестає працювати. Якщо потім я поміняю зображення на менше, воно працює Default
, але якщо я підійду Large
, воно знову перестане працювати.
Я припускаю, що регулювання Display size
вгору змушує ваш пристрій поводитися як фізично менший пристрій з більшою щільністю пікселів. Але я не розумію, що я маю тут робити. Якщо я вкладаю поступово менші зображення для поступово вищої роздільної здатності, це не буде добре виглядати на насправді великих дисплеях. Або я чогось не розумію?
Будь-які вказівки були б дуже вдячні.
res/drawable/
це синонімres/drawable-mdpi/
. Якщо ви хочете, щоб зображення не масштабувалося на основі щільності, використовуйтеres/drawable-nodpi/
абоres/drawable-anydpi/
.