2016-09-27 2 views
0

У меня есть recyclerView в моей MainActivity. Он имеет 12 элементов с изображением.Recycler View Слишком много работы на его основной раме

Моя проблема в том, что, когда я запустить приложение крайне медленно, и я всегда получаю ошибку:

I/Choreographer: Skipped 52 frames! The application may be doing too much work on its main thread.

Но когда я удалить изображение из recyclerView Everthing работает отлично.

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

С уважением Daniel

ответ

0

Как вы сказали, удаление изображений решить проблему, просто изменить размер Drawable изображения и иконки. Постарайтесь минимизировать разрешение и сохраняйте те изображения и значки, которые необходимы для вашего приложения. Другой подход заключается в использовании многопоточного кодирования. Прочтите Java-темы и задачу Async для получения дополнительной информации о многопоточности.

0

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

Тем не менее, вот некоторые вещи, чтобы искать в:

  1. Изменение размера ваших ресурсов и масштабировать их соответствующим образом для каждой плотности экрана: https://developer.android.com/guide/practices/screens_support.html

  2. Если вы еще не воспользоваться ViewHolder шаблон дизайна для вашего RecyclerView: https://developer.android.com/training/material/lists-cards.html

  3. Оптимизируйте загрузку Bitmap (обработка растровых изображений из потока пользовательского интерфейса является хорошей отправной точкой для вашей проблемы): https://developer.android.com/training/displaying-bitmaps/index.html

0

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