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