Подтвердить что ты не робот

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

У меня есть опубликованное приложение, которое разбивается при запуске на 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 вверх приводит к тому, что ваше устройство будет вести себя как физически меньшее устройство с более высокой плотностью пикселей. Но я не понимаю, что я должен здесь делать. Если я буду постепенно увеличивать изображения для получения более высоких разрешений, он не будет выглядеть хорошо на фактически больших дисплеях. Или я что-то не понимаю?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 5

Файлы значков слишком велики для Android для эффективной и плавной загрузки. Android распознает это с помощью своих интеллектуальных алгоритмов.

Вы можете изменить размер файлов значков с помощью Final Android Resizer с помощью asystat. Измените их на "xhdpi" или ниже.

Поместите измененные фотографии с возможностью рисования или перезаписи поверх существующих больших файлов значков.

Затем вы закончили.

Ответ 7

Если вы используете Glide и загружаете 1 Кб изображений за раз или несколько изображений, то это проблема скольжения или того, что вы делаете, чтобы установить вид изображения. Вы можете решить это, просто применяя масштабирование в glide.

Ответ 8

В моем случае я решил проблему после добавления android:hardwareAccelerated="false" в applicationg g файла манифеста.