java .lang.RuntimeException: Canvas: попытка нарисовать слишком большой (188394348байт) растровый рисунок
Это исключение в основном потому, что вы пытаетесь отобразить большое изображение ~ 188 МБ, которое будет имеют высокое разрешение, и android накладывает ограничение на это. Здесь также сообщается здесь .
Одна из причин заключается в экономии ресурсов устройства; например, вы можете получить java.lang.OutOfMemory
, поэтому система сэкономит память устройства.
1 , 2 , 3 может помочь вам в этом.
Обычно вы можете использовать несколько мегабайт изображение в вашем приложении ~ 0-3 МБ. Сторонние библиотеки, такие как Glide & Picasso , предлагают методы управления дисками, сетями и памятью при отображении изображений в ваших ImageViews.
Один из вариантов, который вы можете рассмотреть, - это измените размеры изображений перед их загрузкой, так что можете посмотреть этот вопрос.
Имейте в виду, что android накладывает ограничение на ваш apk-файл в магазине приложений, поэтому вам нужно минимизировать изображения по этой причине или загрузите их с внутреннего сервера.
Как вы упоминали, вы можете помещать значки приложений только в res \ mipmap. И если вы решите поместить изображения в свое приложение, будет эффективно создавать их с различной плотностью (hdpi, xhdpi, xxhdpi, xxxhdpi ...), чтобы они могли соответствовать любому разрешению устройства и позволяли избежать искаженных изображений. или высокая обработка ОС android для соответствия вашего изображения разрешению устройства перед его отображением.