Exception
- проверенный класс исключений. Поэтому любой код, вызывающий метод, объявляющий, что он throws Exception
должен обрабатывать или объявлять его.
Ваш «логотип1» слишком велик для определенных устройств, и он будет зависать. Переместите его в папку drawable-xxhdpi.
Братан, в SCREENONE.JAVA у вас есть, переопределите один и тот же метод дважды. Пожалуйста, исправьте это, и ваше приложение будет отлично работать
Это явно проблема с памятью, вызванная загрузкой в память тяжелого растрового изображения.
Теперь вот советы, которым вы можете следовать и которых можно избежать из-за нехватки памяти в приложении Android.
Считать растровые размеры перед загрузкой в память.
Как чтение размеров растрового изображения перед загрузкой изображения в память может помочь вам избежать ошибки нехватки памяти? Давайте учиться
использовать inJustBounds = true
вот методика, с помощью которой вы можете получить размер изображения перед загрузкой его в память
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;
[ 1128] Приведенный выше фрагмент кода не будет не давать изображение / растровое изображение, он будет возвращать нуль для растрового объекта. но он определенно вернет ширину и высоту этого изображения. R.id.myimage.
Теперь у вас есть ширина и высота изображения, вы можете увеличивать или уменьшать изображение на основе следующих факторов:
ImageView
размер, который будет используется для отображения изображения. Доступный объем памяти. Вы можете проверить доступный объем памяти, используя ActivityManager и getMemoryClass. Теперь,
Конфигурации растрового изображения - это цветовое пространство / глубина цвета изображения. Конфигурация растрового изображения по умолчанию в Android - RGB_8888, что составляет 4 байта на пиксель.
Если вы используете цветной канал RGB_565, который использует 2 байта на пиксель. половина выделения памяти для того же разрешения:)
Использовать свойство inBitmap
для целей переработки
Не создавать статический объект Drawable, поскольку он не может быть сборщиком мусора
Запросить большую кучу в файле манифеста
Использовать несколько процессов, если вы выполняете много обработки изображений (задача, требующая большого объема памяти) ) или используйте NDK (Native Development используя c, c ++)