Как сделать свой андроид плавнее

Как сделать свой андроид плавнее 240


Плавное скольжениеКогда я сравниваю iPhone и телефон на Androd, мне в глаза сразу бросается одно отличие. Я говорю о плавности прокрутки списков. На первый взгляд проблема медленной и рваной прокрутки  кажется не-такой уж существенной, однако если учесть, что прокручивающиеся списки используются практически в каждом Android приложении, то эта недоработка предстает в абсолютно другом сете. Рваная, подтормаживающая прокрутка существенно влияет на восприятие платформы Android в целом. Это один из аспектов, который заставляет людей думать, что Android находится в позиции догоняющего по отношению к iOS.

К счастью, проблема низкой скорости прокрутки списков в Android вполне решаема. Нужно только не пускать все на самотек, а приложить руки и голову. Если разобраться, iOS разработчики тоже вынуждены тратить время на оптимизацию списков, чтобы добиться гладкой прокрути, просто на Android оптимизация выглядит чуть сложнее.

Когда вы занимаетесь оптимизацией Android приложений, нужно держать в голове несколько ключевых моментов:

  1. Создание нового объекта очень медленная операция.
  2. Слишком частый вызов findViewById может быть не оправдан
  3. Вывод на экран должен осуществляться только тогда, когда это действительно необходимо.


Ниже я приведу два приема, которые помогут Вам оптимизировать свои списки.

Первый способ оптимизация широко распространен и им пользуются все мало-мальски грамотные Android разработчики. Он заключается в использовании View Holder-а, что уменьшает количество объектов, которые необходимо создать для списка прокрутки, и исключает вызов нескольких медленных функций пользовательского интерфейса.  Использование View Holder-а позволит вам на 100% повысить производительность прокрутки. Хороший пример работы с View Holder-ом приведенздесь.

Еще один оптимизационный трюк - рисовать на экране только когда пользователь не прокручивает список. Именно необходимость просчета нового изображения для строки списка загружает процессор телефона и убивает плавную анимацию.  Поясним эту идею. Если строка вашего списка содержит несколько рисунков, текст и checkbox, действительно ли пользователю нужно видеть все это в процессе прокрутки? В процессе прокрутки пользователю совсем не нужны все эти данные. Например, если он работает с отсортированным по алфавиту списком - все что ему нужно это текстовое представление. Так почему бы в процессе прокрутки не выводить только текст, а всю графику и checkbox-ы показать, когда прокрутка завершится. Этот подход позволяет сделать прокрутку во много раз более плавной.

Для того чтобы реализовать эту идею Вам нужно добавить логическую переменную isScrolling в Ваш адаптер. Если параметр scrollState не равен нулю (происходит прокрутка), нужно установить эту переменную в true. После того, как прокрутка закончилась, scrollState принимает значение 0, и Вы должны заставить адаптер перерисовать все строки, чтобы показать подробную информацию. Для этого устанавливаем флаг isScrolling в false и вызываем метод notifyDataSetChanged().

listView.setOnScrollListener(new OnScrollListener(){ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCoun){ public void onScrollStateChanged(AbsListView view, int scrollState){ if(scrollState!=0) listView.getAdapter()).isScrolling=true; else{ listView.getAdapter()).isScrolling=false; listView.getAdapter()).notifyDataSetChanged(); } } });

Этот код нужно добавить в метод listView.getView(). В адаптере в зависимости от значения переменной isScrolling  нужно отображать или не отображать содержимое строк.

Описанные приемы позволяют значительно повысить производительность прокрутки списка. Если Вы используете какие-то другие методы оптимизации производительности списков, пожалуйста, поделитесь ими в комментариях.

Источник:Android: Smooth List Scrolling
Перевод:Александр Ледков

Статьи от теме:



Как сделать свой андроид плавнее 988


Как сделать свой андроид плавнее 267


Как сделать свой андроид плавнее 652


Как сделать свой андроид плавнее 710


Как сделать свой андроид плавнее 125


Как сделать свой андроид плавнее 788


Как сделать свой андроид плавнее 690


Как сделать свой андроид плавнее 162


Как сделать свой андроид плавнее 188


Как сделать свой андроид плавнее 453


Как сделать свой андроид плавнее 385


Как сделать свой андроид плавнее 721


Как сделать свой андроид плавнее 501


Как сделать свой андроид плавнее 602


Как сделать свой андроид плавнее 518


Как сделать свой андроид плавнее 286


Как сделать свой андроид плавнее 314


Как сделать свой андроид плавнее 919


Как сделать свой андроид плавнее 644


Читать далее:

  • Как сделать пакет для подарка своими руками
  • Рассеивателями для вспышки своими руками
  • Чем почистить волосы в домашних условиях
  • Причёски на длинные распущенные волосы в домашних условиях
  • Как сделать меню правильного