«Холст: попытка рисовать слишком большое растровое изображение», когда размер экрана Android N установлен больше, чем Small

У меня есть опубликованное приложение, которое рушится при запуске на Android N, когда новая версия OS Display size установлена ​​слишком большим значением.

Когда я смотрю в logcat, я вижу следующее сообщение:

 java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap. 

Я проследил проблему с ImageView в моей первой операции, которая показывает хороший большой фоновый рисунок. Это изображение имеет размер 2048×1066 и находится в моем общем каталоге drawables , поэтому независимо от плотности это изображение будет использоваться.

Все работает нормально, если для параметра « Display size значение « Small . Но когда я подхожу к Default , он перестает работать. Если я затем меняю изображение с меньшим, он работает по Default , но если я перейду к Large , он перестанет работать снова.

Я предполагаю, что настройка Display size приводит к тому, что ваше устройство будет вести себя как физически меньшее устройство с более высокой плотностью пикселей. Но я не понимаю, что я должен делать здесь. Если я постепенно увеличиваю изображения для более высоких разрешений, на фактически больших дисплеях он не будет выглядеть хорошо. Или я что-то не понимаю?

Любые указатели будут очень благодарны.

Solutions Collecting From Web of "«Холст: попытка рисовать слишком большое растровое изображение», когда размер экрана Android N установлен больше, чем Small"

В моем случае, перемещение (hi-res) растрового изображения всплеска от drawable to drawable-xxhdpi было решением.

У меня такая же проблема. Я не подозревал, что мой экран заставки является проблемой, поскольку он отображается, когда приложение запущено, но оказалось, что заставкой является проблема.

Экран заставки в моем случае имеет разрешение xxhdpi, и он был ошибочно помещен в выпадающую папку вместо drawable-xxhdpi . Это заставило Android предположить, что экран заставки имел разрешение mdpi и масштабировал изображение до 3 * 3 раза необходимого размера и пытается создать растровое изображение.

Попробуйте использовать класс Bitmap.Factory, эта ссылка поможет вам эффективно загружать большие растровые изображения

Я не знаю, поможет ли это кому-то, но я просто оставлю это здесь. В моем случае проблема была только на устройствах Sumsung с Android 7, и проблема была в пропорциях заставки. После изменения высоты до 1024 пикселей – все отлично

Переместите изображение в drawable в mipmap-xxhdpi. Ваше изображение в формате растрового изображения, поэтому вы должны поместить свое изображение в папку mipmap, тогда оно будет работать