У меня есть опубликованное приложение, которое отказывает при запуске на Android N когда недавно представленный Display size
Установка OS установлена на слишком большое значение.
Когда я смотрю в 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
заставляет Ваше устройство вести себя как физически устройство меньшего размера с более высокой плотностью пикселей. Но я не понимаю то, что я, как предполагается, делаю здесь. Если я вставил прогрессивно меньшие изображения для прогрессивно более высоких разрешений, это не будет выглядеть хорошим на на самом деле больших дисплеях. Или разве я не понимаю что-то?
Любые указатели значительно ценились бы.
я мой случай, перемещая битовый массив всплеска (с высокой разрешающей способностью) от drawable к drawable-xxhdpi был решением.
у меня была та же проблема. Я не подозревал, что мой экран-заставка, чтобы быть проблемой, начиная с него отображен, когда приложение запускается, но оказалось, что экран-заставка является проблемой.
экран-заставка в моем случае имеет xxhdpi разрешение, и это было по ошибке помещено в папка drawable , вместо drawable-xxhdpi. Это заставило Android предположить, что экран-заставка имел mdpi разрешение, и масштабируйте изображение к 3*3 разам, это потребовало размера и пытающийся создать битовый массив.
Я не знаю, был бы он помогать кому-то, но я просто оставлю его здесь. В моем случае - проблема была только на устройствах Sumsung с Android 7, и проблема была в пропорциях экрана-заставки. после изменяющейся высоты к 1 024 пкс - все хорошо работает
Переместите свое изображение в drawable для множественного отображения. Ваше изображение находится в растровом формате, таким образом, необходимо вставить изображение, множественно отображают папку, затем это будет работать
В моем случае я решил проблему после добавления android:hardwareAccelerated="false"
в applicationg
из файла манифеста.
Попытайтесь использовать Битовый массив. Класс фабрики, эта ссылка поможет Вам Загружающиеся Большие Битовые массивы Эффективно
Файлы значков являются слишком большими для Android к эффективно и гладко загружаются. Android распознает это со своими умными алгоритмами.
можно изменить размер файлов значков с помощью Заключительный Android Resizer asystat. Измените размер их к "xhdpi" или ниже.
Место измененные фотографии в drawable или перезаписи по существующим большим файлам значков.
Затем Вы сделаны.
если Вы используете скольжение, и Вы загружаете 1k изображений за один раз или некоторых изображений затем, это - проблема скольжения или независимо от того, что Вы делаете для использования для установки представления изображения. можно разрешить, что это только путем применения масштаба вводит в скольжении.
В моем случае я просто изменил холст изображения, которое используется в фоновом режиме с помощью Paint3d (или можно использовать любого другого). Здесь я совместно использую снимок экрана, просто проходят его.