У мене є опублікований додаток, який аварійно завершує роботу під час запуску на 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/.