Перейти к содержимому

Что такое анимация в телефоне андроид

  • автор:

Анимация в Android: переходы, ч. 1

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

Автор статьи: Андрей Ващенко, разработчик BytePace.

Анимация с помощью Transition представляет собой изменение свойств объекта (View), исходя из местоположения объекта на экране и примененного эффекта. С момента появления Transition в Android (с выхода версии 4.4 KitKat), появилось понятие сцены (Scene), и переход между двумя сценами это и есть Transition. Грубо говоря, чтобы сделать анимацию, нужна начальная сцена и конечная сцена. Например, чтобы сделать анимированное увеличение какого-либо объекта, можно сделать 1 лэйаут, затем скопировать его, и у копии сделать размер элемента больше. В итоге можем получить что-то подобное:

Таких анимаций можно сделать сколько угодно и разной сложности, всё зависит от фантазии разработчика (ну или дизайнера). В моем конкретном случае я использовал механизм Transition для плавного перехода между экранами. Исходя из этого, сценами будут являться уже лэйауты двух активити (или фрагментов), между которыми будет осуществляться переход.

Анимация на Андроид – как отключить для повышения быстродействия

С каждой версией Android становится всё шустрее и шустрее. Систему постоянно оптимизируют, и на практике это даёт простой факт: смартфон Galaxy Nexus, который я купил 2 года назад, сейчас работает в 1.5 раза быстрее, чем при покупке. С выходом KitKat 4.4 ситуация становится ещё лучше, но пока новинка анонсирована лишь для небольшого числа устройств, а мы поищем иные пути повышения производительности своих смартфонов.

Итак, для избавления от тормозящих навигацию элементов анимации мы идём в Настройки -> Для разработчиков.

Если такого пункта у вас нет, значит он не включен (К.О.). Для его активации открываем нижний пункт в Настройках под названием О телефоне. Находим здесь пункт Номер сборки и тапаем по нему 7 раз. Произойдёт магия и откроется режим разработчика.

Возвращаемся в Настройки и заходим в Для разработчиков. Тут скролим вниз до раздела Рисование. Нас интересуют 3 параметра: Окно: масштаб, Переход: масштаб и Скорость анимации.

По умолчанию значение этих параметров равно 1, но мы выставим их в 0, то есть отключим анимацию.

Для того чтобы изменения вступили в силу, можно просто перезагрузить мобильное устройство, либо тонко ребутнуть лаунчер. Идём в Настройки -> Приложения. Переходим на вкладку Все и находим в списке Launcher.

Делаем его остановку, а затем снова запускаем. Готово.

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

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

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

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

Давайте ознакомимся с подробным алгоритмом действий, который поможет осуществить задуманное. Это не сложно будет сделать даже тем, кто ранее не особо вникал в настройки телефона.

АНИМАЦИЯ НА АНДРОИД

Для начала необходимо получить параметры разработчика в настройках. Это можно сделать так:

  • перейдите в “Настройки”;
  • пролистайте в самый низ и в разделе “Система” перейдите в меню “О телефоне”;
  • там нажмите семь раз подряд на “Номер сборки”.

Параметр “Для разработчиков” появится новой записью в меню после соответствующего уведомления.

КАК ОТКЛЮЧИТЬ АНИМАЦИЮ

Перейдите в него и прокрутите вниз до раздела “Рисование”. В нем найдите три параметра:

  • окно : масштаб;
  • переход : масштаб;
  • скорость анимации.

Присвойте им значения в соответствии с вашими предпочтениями. Если анимация необходима, то сделайте выбор от 0,5х до 10х. Чем больше значение установите, тем более гладко будут отображаться переходы.

Для того, чтобы заставить смартфон быстрее работать и меньше использовать ресурсы батареи, во всех трех параметрах установите значение “Отключить”. Проверьте работу гаджета. Результат впечатляет?

P.S. Оставляйте свои комментарии, а также можете просмотреть список всех наших полезных советов для ОС Андроид, Windows и Linux!

Со временем старые смартфоны начинают работать медленнее — приложения обновляются, улучшаются и начинают потреблять больше ресурсов. В отличие от компьютеров, на мобильном устройстве нельзя увеличить количество оперативной памяти или заменить графический процессор. Несмотря на это, есть способы, которые помогут увеличить быстродействие системы. Одно из возможных решений проблем с производительностью — отключение анимации.

Как отключение анимации влияет на быстродействие системы?

Анимация на операционной системе Android позволяет плавно отображать переход между окнами программ. С включенной анимацией переход из одного раздела в другой выглядит более плавно — благодаря этому создаются красивые визуальные эффекты.

Нужно понимать, что анимация потребляет системные ресурсы смартфона (особенно заметно на бюджетных телефонах). В частности, основная нагрузка приходится на процессор мобильного устройства. Чтобы немного его разгрузить, можно попробовать отключить анимацию интерфейса. Так ЦП не будет тратить ресурсы и время на прорисовку эффектов при переходе из одного раздела в другой, а также при сворачивании окон приложений.

Если отключить эффекты анимации, увеличится скорость отклика системы. Также, в некоторых случаях, приложения будут открываться быстрее за счет уменьшения задержки.

Как отключить анимацию на Android?

  1. Чтобы отключить анимацию, перейдите в настройки смартфона. Далее откройте раздел «Для разработчиков» (вот инструкция).
  2. Здесь находятся функции «Масштаб анимации окна», «Масштаб анимации перехода» и «Шкала длительности анимации».
  3. По умолчанию во всех трех разделах анимация включена. Попробуйте ее отключить и понаблюдайте за работой телефона.

Итоги

Отключение анимации не всегда помогает увеличить производительность системы. Причиной медленной работы гаджета могут стать технические проблемы: неисправность процессора или чипа памяти. Отключение эффектов анимации поможет увеличить быстродействие на программном уровне: это немного снизит нагрузку с ЦП, и система будет потреблять меньше ресурсов.

Всем доброго времени дорогие друзья, знакомые, читатели и прочие личности. Сегодня посмотрим как ускорить Андроид, всякие там приложения под него и игры вроде PUBG Mobile в том числе

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

Сейчас мы наблюдаем занимательную историю, когда развитие железной компьютерной индустрии достигло некоего своего логического (и не очень) пика и все технологии (в том числе программные) ринулись в сферу мобильных устройств.

Содержание: скидки от 50%

Хотите знать и уметь больше?

Вводная

Все наверное слышали про всякие там режимы разработчика в Android, которые позволяют что-то такое там хитрое нашаманить в настройках.

Эти настрои действительно существуют и хитрое нашаманить реально позволяют. Вопрос лишь в том, — будет ли это на пользу и не очень, — да и кому, собственно, — Вам, Вашей батареи, производительности, или некому разработчику.

Тем не менее, — ведь попытка не пытка. Во-первых, телефон можно сделать быстрее, во-вторых и в трехмерных играх всё будет бегать побыстрее (с выходом PUBG Mobile ) все прямо помешались на этой идее), да и вообще, — интересно и приятно.

Предупреждение

Традиционно, мы предупреждаем, что не несём никакой душераздирающей, физической, физиологической, юридической и иной ответственности за то, что Вы там наворотили своими руками, в рамках этой (и не только) статьи.

Полный отказ от ответственности описан у нас здесь.

Что касается возможных побочных эффектов, — тут всё просто. В некоторых случаях всё конечно идет здорово, весело и всячески на пользу. Производительность растёт, ускорение присутствует, PUBG летает, лаунчер телефона счастлив безмерно, а Вы, как его владелец, — пишите хорошие комментарии под этой статьёй, рассказываете о ней друзьям и всё такое прочее-разное.

Во всех остальных же случаях, стоит понимать, что многое зависит от железа в Вашем Android-телефоне, планшете или на чём Вы там планируете всё это запускать и использовать, — так тут вопрос техники.

И да, стоит понимать, что производительность может снизиться, а расход батареи увеличится. Как это исправить? Вернуть всё назад, настройки отключить.

Как ускорить Андроид и запустить настройки разработчика

В зависимости от версии Android на вашем устройстве, для его ускорения и оптимизации, могут быть разные настройки и разные способы их запустить. Но как правило, собственно, всё сводится примерно к одному:

  • Переходим в настройки и находим вкладку « О телефоне «;
  • Там где-то прячется версия операционной системы, ядра или номер сборки (см.скриншоты ниже);
  • Старательно тыркаем по ней несколько раз, пока не получим обидное « Вы стали разработчиком «.

Теперь где-то в настройках (возможно отдельно) у Вас пункт, который называется « Для разработчиков «. Вот он там нам и нужен.

Ах да, скриншоты по включению (если с первого раза не получается, то потыкайте несколько раз по различным пунктам, вроде сборка/версия и тп, — должно помочь):

Собственно, тут и живет вся наша оптимизация, здесь же можно понять как ускорить Андроид и понять хитрости, чтобы Ваш телефон / планшет или устройство, работали быстрее, а во всякие игры, вроде PUBG Mobile игралось комфортнее.

Наши новогодние скидки

Как с этим взлетать: как ускорить Андроид, игры вообще и PUBG Mobile в частности

Здесь и далее будут перечислены настройки на наш вкус и цвет. Каждый может выбрать свои сам, скорректировать необходимое и вообще всё такое.

Мы кстати уже немного писали на эту тему, когда рассказывали про ограничение числа процессов в статье « Оптимизация Android-устройств без использования сторонних программ «:

Итого нам требуется « Многопроцессорный WebView «, — это один из крайне важных пунктов, который ускорит систему вцелом, хотя и может негавтивно сказаться на времени работы от батареи.

Как ускорить Андроид еще сильнее? И визуально понятно? Тоже самое касается пункта « оптимизация SD карты «, если конечно она у Вас вообще есть (карта) и пункт вообще).

Дальше, если Вы не любитель всяческих там анимаций, то крайне рационально будет отключить анимацию окон, переходов и убрать длительность анимации. Это на порядок сэкономит ресурсы, а визуально (субъективно и по ощущениям) у Вас телефон прямо начнет летать вообще.

Еще больше ускорения и оптимизации

Что касается аппаратного ускорения и GPU для компоновки экрана, — считается этот пункт актуален только на быстрых графических ядрах и только для 2D -приложений.

На деле это не всегда так, плюс ко всему, помимо всяких там PUBG Mobile и других 3-х мерных игр для Android , которые Вы и пытаетесь ускорить, собственно, — дело в том, что у Вас всегда задействован процессор как таковой, который работает с интерфейсом и процессами в фоне, поэтому перекладывая часть функционала на GPU Вы можете получить некоторый прирост производительности.

Ну, и если памяти или мощностей у Вас не очень, а поиграть на любимом телефоне хочется, то есть смысл таки подрезать число фоновых процессов. Это конечно скажется на некоторых уведомлениях (например, почты), но зато повысит скорость работы в общем и целом, да и в трёхмерных приложениях в частности.

Послесловие

На сим всё, теперь Вы знаете как ускорить Андроид. Традиционно, — это не моветон и нюансов может быть много. У кого-то сие возымеет эффект, а у кого-то начнет кушать батарею. Кто-то вообще не заметить разницы и не поймет зачем оно вообще нужно.

Многое зависит от способа использования Вашей железки на Андроиде, её конфигурации, версии системы, процессора, памяти, места, игр в которые играете и многого другого.

Такие дела. Если интересно, — пишите в комментариях, — мы разовьем тему и расскажем как тем же Kernel Auditor ‘ом реально ускорить любой девайс, исходя из глубокого настройка ядра любого телефона.

Как и всегда, если есть какие-то мысли, вопросы, дополнения и всё такое прочее, то добро пожаловать в комментарии к этому материалу.

Подписка: Мы в соц.сетях: ВКFacebookTwitterTelegram

26 сентября 2014

По материалам androidcentral.com

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

«Разблокируем» функции разработчика в телефоне

Как говорилось выше, эти функции изначально скрыты. Это имеет смысл, поскольку найти их просто, а большинству людей они попросту не нужны. Для того, чтобы добраться до них, идем в раздел «Об устройстве» и ищем там пункт «Номер сборки». После пяти быстрых тапов появляется диалоговое окно – теперь устройство считает вас разработчиком. Только попробуйте ничего не испортить, ладно? Ну, или делайте что хотите – тоже вариант. Так или иначе, возможность заставить ваш телефон перестать работать всегда имеется.

А теперь посмотрим на предложенные функции повнимательнее.

Настройки

  • Создать отчет об ошибках. Тапаете здесь, чтобы отправить соответствующее сообщение туда, куда вы хотите. Устройство готовит нужные файлы для отправки, что занимает пару минут, после чего вы видите уведомление. Если смахнуть его, процесс остановится, а если тапнуть, сообщение отправится.
  • Пароль резервного копирования. Позволяет использовать ADB для создания бэкапа и восстановления приложений и связанных с ними данных на вашем компьютере. Резервное копирование данных требует введения пароля, и без него данные не могут быть восстановлены.
  • Активный режим. Выбор этого пункта позволяет вам держать экран работающим постоянно при подключении телефона кабелем к зарядному устройству или к компьютеру по USB. Не стоит использовать этот пункт без надобности, поскольку это верный способ выжечь экран.
  • Выбор рабочего модуля. Именно здесь вы можете выбрать между Dalvik и ART. Последний по-прежнему находится в тестовом режиме – это явно не то, что мы увидим в Android L. С некоторыми телефонами у него настоящий антагонизм, поэтому стоит уточнить на соответствующем форуме насчет вашей модели устройства.
  • Включить журнал трансляции операций HCI Bluetooth. Иногда разработчику или специалисту по безопасности требуется перехватить и проанализировать пакеты Bluetooth HCI. Включение этого пункта помещает их в файл, который находится во встроенной памяти устройства (/sdcard/btsnoop_hci.log) для восстановления. После этого их можно проанализировать программой типа Wireshark.
  • Статистика процессов. Все, что вам может понадобиться узнать о запущенных на вашем устройстве процессах. Тапаете здесь, а потом на одном из пунктов. Для обычного пользователя это просто набор цифр, но для разработчика может быть весьма полезным.
  • Отладка USB. То, что позволяет вашему телефону связываться с компьютером, используя Android Debug Bridge (ADB). Это требуется для использования DDMS или команд ADB.
  • Отозвать авторизацию отладки USB. Когда отладка при помощи компьютера происходит в первый раз, вам нужно авторизовать его и установить пару ключей. Эта настройка отменяет данное действие и предлагает повторить его снова.
  • Отчеты об ошибках. Включает опцию, которая становится видимой, когда вы зажимаете кнопку питания для сбора и отправки отчета об ошибках. Очень удобно, если вы что-то тестируете.
  • Фиктивные местоположения. Эта настройка позволяет вам вручную задавать информацию о местоположении, заставляя ваш телефон думать, что он там, где его в действительности нет. Кроме читов для Forsquare, это полезно для приложений, которые используют информацию о местоположении.
  • Приложение для отладки. Эта настройка позволяет вам выбрать приложение для отладки. Вам не требуется действительно подключаться к отладчику, но если вы включите его, то не будете получать сообщений об ошибках, когда останавливаетесь на точке останова. Если вы не понимаете, что это значит, тогда эта настройка вам никогда не требовалась и не понадобится. Она создана для работы со средствами разработчика, позволяющими убедиться в том, что приложение работает корректно.
  • Подождите, пока отладчик. Этот пункт остается неактивным, пока вы не выберет приложение для отладки. Когда оно установлено и выбрано, то настройка просто не позволяет выбранному приложению запуститься до тех пор, пока не включится отладчик. Еще один пункт, который нужен разработчикам, но бесполезен для большинства пользователей.
  • Проверять для USB. Позволяет Google сканировать приложения, которые вы поставили через ADB, на предмет вредоносного поведения. Хорошая вещь.
  • Показывать касания. Выбирая этот пункт, вы будете видеть визуальный эффект, подтверждающий регистрацию касания экрана.
  • Местоположение указателя. Эта настройка размещает в верхней части экрана строку, в которой выводятся координаты точки экрана, которой коснулись последней.
  • Показать обновления экрана. Заставляет край «окна» вспыхивать, когда происходит обновление контекста. Раздражает безумно.
  • Показывать границы макета. Отмечает края элементов в окне диалога для того, чтобы вы знали, куда нужно нажать, чтобы активировать его. Попробуйте – и немедленно выключайте.
  • Написание справа налево. Изменяет ориентацию экрана для поддержки языков с правосторонним написанием
  • Анимация окна: масштаб. Устанавливает скорость воспроизведения анимации окна. Чем меньше число, тем быстрее.
  • Анимация перехода: масштаб. Устанавливает скорость воспроизведения анимации при переходе. Опять же, чем меньше, тем быстрее.
  • Эмуляция дополнительных дисплеев. Эта настройка позволяет разработчикам имитировать различные размеры экрана. Не самая надежная вещь.
  • Рендеринг принудительно. Заставляет приложения использовать аппаратный двухмерный рендеринг, если они были написаны так, чтобы не использовать его по умолчанию. Иногда творит чудеса. Иногда отправляет все к чертям. Будьте бдительны.
  • Показать обновления окна. С этой настройкой любая отрисовка, производимая графической подсистемой, получает красную подсветку.
  • Показывать аппаратные обновления. Выделяет аппаратные уровни зеленым при обновлении. Зачем это нужно — можете почитать здесь http://www.curious-creature.org/2013/09/13/optimizing-hardware-layers/ (на английском).
  • Отладка наложения. Наложение происходит каждый раз, когда приложение запрашивает систему на отрисовку чего-либо поверх чего-то иного. Эта настройка позволяет вам видеть, когда и где это происходит, чтобы видеть, в чем проблема.
  • Включить 4х MSAA. Эта настройка принудительно включает множественную выборку сглаживания (MSAA). Как и с любым другим графическим ускорителем, чем больше сглаживания, тем лучше все смотрится. Но скорость работы при этом падает.
  • Строгий режим. Эта настройка заставляет экран мигать, когда приложение использует главный поток для выполнения длительной и интенсивной операции.
  • Выводить использование ЦП. Размещает в правом верхнем углу небольшое окно с информацией о центральном процессоре и его использовании. Забавная игрушка.
  • Профиль обработки GPU. Эта настройка может либо рисовать график на экране, либо писать его в файл. График — визуальное отображение загрузки работы графического адаптера. Еще одна вещь, на которую интересно посмотреть.
  • Включить трассеровку OpenGL. Настройка, позволяющая следить за ошибками OpenGL и помещающая их в специальный файл лога по вашему выбору. Ничего такого, что стоило бы трогать большинству пользователей.
  • Не сохранять операции. Эта настройка уничтожает любое приложение, как только вы закрываете его окно. Ничего хорошего из этого не выйдет, что бы там на форумах ни писали.
  • Фоновые процессы. Позволяет задавать в настройках количество процессов, которые могут одновременно работать в фоне. Еще одна вещь, которую большинству из нас не стоит трогать слишком часто. Если вообще стоит.
  • Показать все ANR. Эта настройка заставляет все процессы показать сообщение «Приложение не отвечает», если приложение зависло, включает фоновые процессы, которые не запускаются пользователем. Полезно, если одно приложение мешает нормально работать другому.

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

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

Анимации в Android по полочкам (Часть 1. Базовые анимации)

Сегодня я хочу немного рассказать про анимацию в Android. Думаю для всех достаточно очевидный факт, что анимации могут украсить наше приложение. Но я считаю, что они могут намного больше. Первое это — хорошие анимации даже при скромной графике могут вывести наше приложение на абсолютно новый уровень. Второе — это дополнительный инструмент для общения с пользователем, позволяющий фокусировать внимание, подсказывать механики приложения, и многое другое… но это отдельная большая тема.

Сегодня мы поговорим об инструментах для создания анимации. К сожалению, так получилось, что в Android достаточно много способов что либо анимировать, и по началу в них очень легко запутаться. Я постараюсь привести максимально общую классификацию и оставлю ссылки исключительно на документацию, т.к. туториалов можно найти предостаточно. Надеюсь эта статья поможет уложить в голове всё по полочками и, при необходимости создать анимацию, выбрать наиболее подходящий способ.

Часть 1. Базовые анимации
Часть 2. Комплексные анимации
Часть 3. «Низкоуровневые» анимации

Часть 1. Базовые анимации

1. Кадр за кадром

Предполагаю, что первая анимация в мире создавалась именно так, и в Android до сих пор доступна эта возможность.

Всё что нужно сделать это создать xml со ссылками на каждый кадр:

И запустить анимацию (Здесь и далее все примеры будут приведены на Kotlin):

Сложные по графике анимации, небольших размеров и подготовленные во внешнем редакторе.

Возможность достичь любой сложности эффектов

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

2. Анимация свойств объекта (aka Property Animator)

Если нам нужно всего-лишь передвинуть что-нибудь на несколько пикселей в сторону или изменить прозрачность, чтобы не плодить миллион очень похожих друг на друга кадров на помощь приходит Animator. Фактически с помощью него можно анимировать любое свойство любых объектов.

Базовый абстрактный класс называется Animator, у него есть несколько наследников, нам важны:

ValueAnimator — позволяет анимировать любое свойство
ObjectAnimator — наследуется от ValueAnimator и имеет упрощённый интерфейс для анимации свойств View.
ViewPropertyAnimator — Предоставляет ещё один удобный интерфейс для анимации View. Не унаследован от Animator и используется в методе View::animate()

Анимацию выше можно описать как в коде:

так и в XML ( animator/open_animator.xml ):

Так-же есть возможность описать нашу анимацию переходов между стейтами View, что соответсвенно, с лёгкостью позволит создать анимированные переходы между стейтами у любых View. Описанная в XML анимация будет автоматически запущена при смене состояния View.
animator/state_animator.xml

Анимация View объектов и любых их параметров
Анимация любых других параметров

В некоторой степени требовательны к ресурсам

3. Анимация View (aka View animation)

До появления Animator в Android были только Animations. Основной недостаток которых был в том что они анимировали только представление вида и никак на самом деле не изменяли его свойства. Поэтому если хочется анимировать перемещение какого-либо элемента, то дополнительно по окончанию анимации нужно изменить ещё его свойства. Такой подход так или иначе не очень удобен, если вам нужна чуть более сложная анимация или нужно отлавливать нажатия в момент анимации.

Анимацию можно запустить как в коде:

так и в XML (обратите внимание, что синтаксис отличается от xml для Animator):
anim/open_animation.xml

Там, где API не позволяет использовать Animator.

Устаревший API, меняет только представление вида.

4. Анимация векторных ресурсов (aka AnimatedVectorDrawable)

На мой взгляд самая интересная часть в Android анимациях. Можно относительно малыми силами добиваться сложных и интересных эффектов. Трансформации иконок в Android сделаны именно так.

VectorDrawable состоит из Path и Group элементов. Создание анимации сводится к тому, чтобы прописать движение к этим элементам. Андроид на картинке выше, в коде будет выглядеть так:

Чтобы не писать XML вручную можно воспользоваться онлайн инструментом.

Начиная с API 25 векторные анимации отрисовываются в RenderThread, поэтому, даже если мы загрузим чем-то наш UI Thread (но мы же никогда так не делаем, да?), анимации всё равно будут проигрываться плавно.

Иконки
Анимационные эффекты

Нет возможности вручную управлять точкой анимации во времени (т.е. фактически отсутствует какой-либо метод, вроде setCurrentTime)

Анимация в Android

Трудно представить себе мобильную разработку без анимированных элементов. Они весёлые, красивые и обладают силой убеждения, которой нет у статических элементов интерфейса.

Создание анимации, которая делает объекты на экране словно живыми может показаться таким же сложным, как аэрокосмическое проектирование. Не бойтесь, у Android довольно много инструментов, которые помогут вам создавать анимацию относительно легко. ��

В этом уроке вы научитесь комфортно работать с некоторыми необходимыми инструментами для анимации по мере того как вы будете запускать Доге на ракете в космос (возможно, даже на Луну) и, надеюсь, надёжно возвращать его на землю. ��

Создавая анимацию Доге, вы научитесь:

  • Создавать анимацию свойств (Property Animation) — самую полезную и простую анимацию в Android;
  • Перемещать и скрывать представления (views);
  • Объединять анимации в последовательность или запускать их одновременно;
  • Повторять и обращать анимации;
  • Регулировать время анимации;
  • Ракетостроению. ��

Необходимые требования: урок посвящён анимации в Android, поэтому вам нужны базовые знания в программировании на Android, а также быть знакомыми с Java, Android Studio и XML-разметками.

Начало работы

Анимация это очень интересная тема для изучения! Лучший способ стать мастером создания анимации это пачкание рук в коде. ��

Сначала загрузите стартовый проект. Импортируйте его в Android Studio, затем запустите на своём устройстве. Вы найдёте всё, что вам нужно, чтобы сделать это быстро.

На вашем устройстве отобразится список всех анимаций, которые вы реализуете в процессе.

Нажмите на любой элемент в списке.

Вы должны увидеть два статических изображения: Доге и ракету, причём Доге готов прокатиться. Пока все экраны одинаковы и ни один ещё не анимирован.

Как работает анимация свойств (Property Animation)?

Прежде чем вы начнёте работать с первой анимацией, немного пройдите по дороге теории, чтобы понять логику магии. ��

Представьте, что вам нужно анимировать запуск ракеты с нижнего края экрана до верхнего края и что ракета должна сделать это ровно через 50 мс.

Вот график, показывающий, как позиция ракеты меняется со временем:

Анимация выше кажется гладкой и непрерывной. Однако смартфоны являются цифровыми и работают с дискретными значениями. Время для них непрерывно не течёт, оно продвигается крохотными шагами.

Анимация состоит из множества статичных изображений, более известных как кадры, которые отображаются один за другим в течение определённого периода времени. Концепция сегодня такая же, как при создании первых мультфильмов, однако рендеринг немного отличается.

Истекшее время между кадрами называется задержкой обновления кадра (frame refresh delay) — по умолчанию для Property Animation она равна 10 мс.

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

Ниже вы видите шесть кадров. Заметье, что:

  • В начале анимации ракета находится в нижней части экрана;
  • Положение ракеты изменяется на одну и ту же часть пути с каждым кадром;
  • К концу анимации ракета находится в верхней части экрана.

TL/DR: при рисовании определённого кадра вы вычисляете положение ракеты в зависимости от продолжительности и частоты обновления кадров.

К счастью, вам не нужно рассчитывать всё вручную, потому что ValueAnimator рад сделать это за вас.

Чтобы создать анимацию, вы просто указываете начальное и конечное значение объекта, который будет анимирован, а также продолжительность. Кроме того, вам нужно установить слушатель (listener) для вызова обновления позиции вашей ракеты для каждого кадра.

Интерполяторы времени

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

В основе анимации Android лежат интерполяторы времени. ValueAnimator включает в себя эти интерполяторы — он имеет объект, который реализует интерфейс TimeInterpolator. Интерполяторы времени определяют, как анимация изменяется с течением времени.

Посмотрите ещё раз на график изменений позиции во времени в простейшем случае — Linear Interpolator.

Вот как LinearInterpolator реагирует на изменение времени.

В зависимости от времени, положение ракеты изменяется с постоянной скоростью или линейно.

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

Он удваивает входное значение, заставляя ракету медленно стартовать и быстрее ускоряться — точно так же, как настоящая ракета!

Это почти вся теория, которую вам нужно знать, чтобы начать, так что теперь пришло время для…

Ваша первая анимация

Потратьте некоторое время, чтобы ознакомиться с проектом, прежде чем двигаться дальше. Пакет com.raywenderlich.rocketlaunch.animationactivities содержит BaseAnimationActivity и все другие активности, которые расширяют этот класс.

Откройте файл activity_base_animation.xml в папке res/layout.

В корневом каталоге вы найдёте FrameLayout, который содержит два экземпляра ImageView с изображениями. У одного есть rocket.png, а у другого есть doge.png. Оба имеют android:layout_gravity, установленный на bottom|center_horizontal, чтобы заставить изображения отображать в центре нижней части экрана.

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

Перейти в любой файл — command + O на Mac / Ctrl + N на Linux и Windows.

Перейти к классу Java — command + Shift + O на Mac / Ctrl + Shift + N на Linux и Windows.

BaseAnimationActivity это суперкласс для всех других анимационных активностей в этом приложении.

Откройте BaseAnimationActivity.java и загляните внутрь. В верхней части находятся переменные View, которые доступны из всех анимационных активностей:

  • mRocket — изображение ракеты;
  • mDoge — изображение Доге;
  • mFrameLayout — FrameLayout, который содержит в себе mRocket и mDoge;
  • mScreenHeight — переменная, равная высоте экрана.

Обратите внимание, что mRocket и mDoge оба являются ImageView, но объявлены как View, поскольку анимация свойств работает со всеми типами View.

Взгляните на onCreate(), чтобы просмотреть код:

Вот что вы здесь делаете:

  • вызываете метод onCreate() для суперкласса;
  • Применяет разметку XML и привязываете FrameLayout, mRocket и mDoge к их соответствующим представлениям;
  • Устанавливаете onClickListener в FrameLayout;
  • Вызываете onStartAnimation(), когда пользователь нажимает на экран. Это абстрактный метод, определяемый каждой активностью, которые наследуют BaseAnimationActivity.

Этот базовый код распределяется на всех активности, которые вы будете редактировать в этом уроке. Теперь, когда вы знакомы с ними, время начать настройку!

Запуск ракеты

Доге никуда не полетит пока не начнёте запуск ракеты, и это лучная анимация для начала поскольку она довольно простая. Кто бы мог подумать, что наука ракетостроения так проста!?

Откройте LaunchRocketValueAnimatorAnimationActivity.java и добавьте следующий код в тело onStartAnimation():

  1. Создайте экземпляр ValueAnimator, вызвав статический метод ofFloat. Он принимает числа с плавающей запятой, которые будут применяться к указанному свойству анимированного объекта с течением времени. В этом случае значения начинаются с 0 и заканчиваются на -mScreenHeight. Начало координат в Android находится в верхнем левом углу, поэтому сдвиг по Y в ракете изменяется от 0 до отрицательного по высоте экрана — он перемещается снизу вверх.
  2. Вывозите addUpdateListener() и передайте слушателю. ValueAnimator вызывает слушатель с каждым обновлением до анимированного значения — помните о задержке по умолчанию в 10 мс.
  3. Получите текущее значение от аниматора и преобразуйте его в float. Текущий тип значения — float, потому что вы создали ValueAnimator с ofFloat.
  4. Измените положение ракеты, использую setTranslationY().
  5. Настройте продолжительность аниматора и интеполятор.
  6. Запустите анимацию.

Соберите и запустите проект. Выберите «Запустить ракету» в списке. Появится новый экран. Нажмите на него!

Это было весело, правда? �� Не беспокойтесь о том, что Доге остался позади — он вскоре поймает свою ракету на Луну.

Добавление вращения на ракету

Как насчет того, чтобы дать ракете небольшое вращение? Откройте RotateRocketAnimationActivity.java и добавьте следующий код в onStartAnimation():

Можете заметить разницу?

  1. Изменилось значение аниматора, теперь он изменяется от 0 до 360, потому что ракета должна совершить полный оборот. Обратите внимание, что вы можете сзодать эффект разворота от 0 до 180.
  2. Вместо setTranslationY вы вызываете метод setRotation, потому что нужно задать вращение.

Соберите и запустите проект. Выберите «Вращать ракету». Нажмите на новый экран.

Ускорение запуска

Откройте AccelerateRocketAnimationActivity.java и добавьте следующий код к вашему старому другу onStartAnimation():

Вышеприведённый код идентичен onStartAimation() в LaunchRocketValueAnimationActivity.java за исключением одной строки: интерполятор, используемый для setInterpolator().

Соберите и запустите проект. Выберите «Ускорить ракету» в списке. Нажмите на новый экран, чтобы увидеть, как ведёт себя ваша ракета.

Опять же, мы видим, как бедный Доге не ловит ракету на Луну… бедный парень. Держись, приятель!

Поскольку вы использовали AccelerateInterpolator, вы должны увидеть ускорение ракеты после подъёма. Не стесняйтесь играть с интерполяторами, если хотите.

Какие свойства вы можете анимировать?

До сих пор у вас анимированы только позиция и поворот для View, но ValueAnimator не заботится о том, что вы делаете со значение, которое он поставляет.

Вы можете указать ValueAnimator для анимации значения с использованием любого из следующих типов:

  • float, если вы создаёте экземпляр ValueAnimator с функцией ofFloat;
  • int, если вы делаете это с помощью ofInt;
  • ofObject для случае, когда float или int недостаточно — он часто используется для анимации цветов.

Вы также можете анимировать любое свойство View. Вот некоторые примеры:

  • setScaleX(float) и setScaleY(float) — позволяют вам масштабировать объект по оси Х или Y независимо или вызывая их с одинаковыми параметрами для изменения размера;
  • setTranslationX(float) и setTranslation(Y) — позволяют вам изменить положение объекта на экране;
  • setAlpha(float) — прозначность анимированного объекта: 0 — полностью прозрачный, 1 — полностью непрозрачный;
  • setRotation(float) — поворачивает объект на экране. Аргумент задаётся в градусах, поэтому 360 означает полный поворот по часовой стрелке. Вы можете указать и отрицательные значения, например -90, что означает разворот против часовой стрелки;
  • setRotationX(float) и setRotationY(float) — то же самое, что и setRotation, но вдоль оси X и Y. Они позволяют поворачивать трехмерные объекты;
  • setBackgroundColor(int) — позволяет установить цвет. Целочисленный аргумент должен указывать цвет как константы Android (Color.YELLOW, Color.BLUE).

ObjectAnimator

Знакомьтесь с ObjectAnimator, подклассом ValueAnimator. Если вам нужно анимировать только одно свойства одного объекта, то ObjectAnimator может быть вашим лучшим другом.

В отличие от ValueAnimator, где вы должны установить слушатель и сделать что-то со значением, ObjectAnimator может обрабатывать всё это почти автоматически. ��

Перейдите в класс LaunchRocketObjectAnimatorAnimationActivity.java и добавьте следующий код:

Вот что вы делаете:

  1. Создаёте экземпляр ObjectAnimator (как вы делали ValueAnimator), за исключением того, что первый имеет ещё два параметра:
    • mRocket — объект для анимации;
    • Объект должен иметь метод-сеттер вида set»Property name»(), и свойство, которое вы хотите изменить, например «translationY». Вы можете это сделать, поскольку mRocket является объектом класса View, у которого есть доступный setter setTranslationY().
  2. Устанавливаете продолжительность анимации и запускаете её.

Соберите и запустите проект. Выберите «Запустить ракету (ObjectAnimator)» в списке. Нажмите на экран

Ракета ведёт себя также, как и с ValueAnimator, но кода стало меньше. ��

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

Рассмотрите свои варианты использования и количество кода, когда вы решаете между ObjectAnimator и ValueAnimator.

Анимирование цвета

Говоря о случаях использования, существует анимирование цвета, которое нужно учитывать. Ни одна из функций ofFloat() и ofInt() не может построить ваш аниматор и получить хорошие результаты при работе с цветами. Вам лучше использовать ArgbEvalucator.

Откройте ColorAnimationActivity.java и поместите этот код в onStartAnimation():

В приведённом выше коде вы:

  1. Вызываете метод ObjectAnimator.ofObject и даёте ему следующие аргументы:
    • mFrameLayout — объект со свойством, которое нужно анимировать;
    • «backgoundColor» — свойство, которое вы анимируете;
    • new ArgbEvalucator() — дополнительный аргумент, который указывает, как интерполировать между двумя разными значениями цвета ARGB (Alpha, Red, Green, Blue);
    • Начальное и конечное значения цвета — вы используете ComtextCompat.getColor(), чтобы получить идентификатор цветового ресурса.
  2. Устанавливаете количество повторений анимации с помощью setRepeatCount(). Затем вы используете setRepeatMode(), чтобы определить, что делает анимация, когда она достигает конца. Подробнее об этом скоро.
  3. Задаёте продолжительность и запускаете анимацию.

Соберите и запустите проект. Выберите «Цвет фона» в списке и нажмите на экран.

Это удивительно! Эй, вы быстро это понимаете. Такое гладкое изменение цвета фона. ��

Объединение анимаций

Анимация довольно удивительная вещь, но вы изменили только одно стройство и один объект за раз. Анимация не должна быть настолько ограничекна.

Пришло время отправить Доге на Луну. ��

AnimatorSet позволяет вам воспроизводить несколько анимаций вместе или последовательно. Вы передаёте свой первый аниматор в метод play(), который принимает объект Animator в качестве аргумента и возвращает построитель.

Затем вы можете вызвать следующие методы в этом построителе, все из которых имеют объект Animator в качестве аргумента:

  • with() — для воспроизведения аниматора, переданного как аргумент одновременно с первым, указанным в play();
  • before() — для воспроизведения до;
  • after() — для воспроизведения после.

Вы можете создавать целые цепочки вызовов.

Откройте LaunchAndSpinAnimatorSetAnimatorActivity.java в своём редакторе и поместите следующий код в onStartAnimation():

Вот что вы делаете в этом блоке:

  1. Создаёте новый ValueAnimator.
  2. Прикрепляете AnimatorUpdateListener к ValueAnimator, который обновляет положение ракеты.
  3. Создаёте ObjectAnimator, второй аниматор, который обновляет вращение ракеты.
  4. Создаёте новый экземпляр AnimatorSet.
  5. Указываете, что вы хотите выполнить positionAnimator вместе с rotationAnimator.
  6. Устанавливаете проодлжительность и вызываете start().

Соберите и запустите проект. Выберите «Запустить и вращать (AnimatorSet)». Нажмите на экран.

Доге бросает вызов законам физики.

Существует отличный инструмент для упрощения анимации нескольких свойств одного и того же объекта. Инструмент называется…

ViewPropertyAnimator

Одна из самых больших особенностей кода, используемых ViewPropertyAnimator, заключается в просто написания и чтения кода — вот увидите.

Откройте LaunchAndSpinViewPropertyAnimatorAnimationActivity.java и добавьте следующий код в onStartAnimation():

Здесь animate() возвращается экземпляр ViewPropertyAnimator, чтобы вы могли связать вызовы.

Соберите и запустите проект. Выберите «Запустить и вращать (ViewPropertyAnimation)» и вы увидите ту же анимацию. что и в предыдущем разделе.

Сравните код этого раздела с фрагментом кода AnimatorSet, который вы реализовали в предыдущем разделе:

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

Анимирование одного и того же свойства двух объектов

Хорошей особенностью ValueAnimator является то, что вы можете повторно использовать его анимированное значение и примернять его к как можно большему количеству объектов.

Проверьте это, открыв FlyWithDogeAnimationActivity.java и добавив следующий код в onStartAnimation():

В приведённом выше коде вы просто создали три аниматора:

  1. positionAnimator — для изменения положения как mRocket, так и mDoge.
  2. rotationAnimator — для вращения Доге.
  3. animatorSet — для объединения двух аниматоров.

Обратите внимание, что вы устанавливаете перевод для двух объектов одновременно в первом аниматоре.

Соберите и запустите проект. Выберите «Не оставляйте Доге позади (Анимирование двух объектов)». Вы знаете, что делать. На Луну!

Слушатели анимации

Анимация обычно подразумевает, что определённое действие произошло или произойдёт. Как правильно, что бы ни происходило, обычно приходит в конце вашей фантастической анимации.

Вы не можете наблюдать, но знаете, что ракета останавливается и остаётся на экране, когда анимация заканчивается. Если не планируете высаживать его или закрывать активность, вы можете удалить View, чтобы сэкономить ресурсы.

AnimatorListener получает уведомление от аниматора при следующих событиях:

  • onAnimationStart() — при запуске анимации;
  • onAnimationEnd() — при завершении анимации;
  • onAnimationRepeat() — при повторении анимации;
  • onAnimationCancel() — при отмене анимации.

Откройте WithListenerAnimationActivity.java и добавьте следующий код в onStartAnimation():

Структура вышеприведённого кода, за исключением части слушателя, должна выглядеть так же, как в предыдущем разделе. Вот что вы здесь делаете:

  1. Создаёте и настраиваете аниматор. Вы используете ValueAnimator для изменения положения двух объектов одновременно — вы не сможете сделать тоже самое с одним ObjectAnimator.
  2. Добавляете AnimatorListener.
  3. Показываете всплывающее сообщение при запуске анимации.
  4. И ещё одно сообщение, когда она заканчивается.
  5. Начинаете анимацию как обычно.

Соберите и запустите проект. Выберите «События анимации». Нажмите на экран. Следите за сообщениями!

Примечание: вы также можете добавить слушателя в ViewProperyAnimator, добавив setListener в цепочку вызовов до вызова start():

В качестве альтенатива вы можете устанавливать начальные и конечные действия, вызывая withStartAction(Runnable) и withEndAction(Runnable). Это эквивалент AnimatorListener с соответствующими действиями.

Опции анимации

Анимирование — это не простые трюки, которые просто останавливаются и уходят. Они могут работать циклически, в обратном направлении, в течение определённой продолжительности и т.д.

В Android вы можете использовать следующие методы для настройки анимации:

  • setRepeatCount — указывается количество повторений анимации после первого запуска;
  • setRepeatMode — определяет, что должна делать анимация. когда она достигает конца;
  • setDuration — указывает общую продолжительность анимации.

Откройте FlyThereAndBackAnimationActivity.java и добавьте следующий код в onStartAnimation():

  1. Создаёте аниматор как обычно.
  2. Можно установить для параметра repeatMode одно из следующих значений (RESTART — возобновляет анимацию с самого начала и REVERSE — обращает направление анимации с каждой итерацией). В данном случае вы устанавливает его на REVERSE. потому что вы хотите, чтобы ракета взлетела, а затем вернулась в туже позицию, где и началась. Как и SpaceX! ��
  3. …Кроме того, вы делаете это дважды.
  4. Устанавливаете продолжительность и запускаете анимацию как обычно.

Примечание: Итак, почему третий раздел указывает количество повторов 3 раза? Каждое движение вверх-вниз потребляет два повторения, поэтому вам нужно три, чтобы дважды довести Доге до земли: один для приземления в первый раз, а два — для запуска и посадки снова. Сколько раз вы хотели бы увидеть Доге? Поиграйте с этим!

Соберите и запустите проект. Выберите «Лететь туда и обратно (Опции анимации)» в списке. Нажмите на экран.

Вы должны увидеть, как ваша ракета прыгает, как кузнечик! Получи, Илон Маск! ��

Объявление анимации в XML

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

Определяя анимацию в XML, вы разрешаете повторное использование анимаций по всему коду.

Определение анимации в XML имеет некоторое сходство с составлением макетов разметки.

Если в src/main/res у вас нет папки animator, то нажмите на res правой кнопкой мыши и выберите New, затем Android resource directory.

В появившемся окне выберите тип ресурса animator.

Перейдите в папку res/animator и нажмите правой кнопкой мыши, выберите New, затем Android resource file.

Введите имя файла jump_and_blink. Сохраните предварительно выбранный корневой элемент в Source set.

В открывшемся редакторе вы увидите следующее:

Доступны следующие теги XML:

  • set — то же, что и AnimatorSet;
  • animator — то же, что и ValueAnimator;
  • objectAnimator — вы правильно поняли, это ObjectAnimator.

При использовании AnimatorSet в XML вы вставляете объекты ValueAnimator и ObjectAnimator внутри него, подобно тому, как вы вставляете объекты View внутри объекта ViewGroup (RelativeLayout, LinearLayout и т.д.) в файлах разметки.

Замените содержимое jump_and_blink.xml следующим кодом:

Здесь вы объявляете корневой элемент, тэг set. Его атрибут упорядочения может быть либо «вместе», либо «последовательно». Он выставлен на «вместе» по умолчанию, но вы можете указать его для ясности. Тэг set имеет два дочерних XML-тэга, каждый из которых является объектным.

Взгляните на следующие атрибуты objectAnimator:

  • android:valueFrom и android:valueTo — указывают начальные и конечные значения, когда вы создали ObjectAnimator;
  • android:valueType — тип значения, либо floatType, либо intType;
  • android:propertyName — свойство, которое вы хотите анимировать;
  • android:duration — длительность анимации;
  • android:repeatCount — тоже, что и setRepeatCount;
  • android:repeatMode — то же, что и setRepeatMode;
  • android:interpolator — указывает интерполятор. Он обычно начинается с @android:interpolator/. Начните вводить это, и Android Studio покажет все доступные интерполяторы по параметрам автозаполнения;
  • Вы не можете указать свой целевой объект здесь, но вы можете сделать это позже в Java.

В последнем блоке вы добавили два экземпляра objectAnimator в AnimatorSet, и они будут воспроизводиться вместе. Теперь, пришло время их использовать.

Перейдите в XmlAnimationActivity.java и добавьте следующий код в onStartAnimation():

В приведённом выше коде вы делаете всего несколько вещей:

  1. Во-первых, вы загружаете AnimatorSet из файла R.animator.jump_and_blink, так же, как вы обычно загружаете разметку.
  2. Затем вы устанавливаете mRocket в качестве цели для только что загруженного аниматора.
  3. Ещё раз загружаете аниматор из того же файла
  4. Повторяете действия для mDoge.
  5. Теперь вы создаёте третий AnimatorSet и настраиваете его для одновременного воспроизведения первых двух.
  6. Устанавливаете продолжительность для корневого аниматора и запускаете.
  7. Уф! Осталось немного. ��

Соберите проект и запустите. Выберите «Прыгнуть и моргнуть (Анимация в XML) в списке. Нажмите на экран, чтобы увидеть результат своей работы.

Вы должны увидеть, как Доге прыгает, исчезает, а затем возвращается безопасно на землю. ��

Что делать дальше

Во время этого урока вы:

  • Создали и использовали анимацию свойств с помощью ValueAnimator и ObjectAnimator;
  • Настроили интерполятор времени для вашей анимации;
  • Анимировали положение, поворот и цвет;
  • Объединили анимации вместе;
  • Использовали впечатляющий ViewPropertyAnimator с помощью animate();
  • Повторили анимацию;
  • Определили анимацию в XML для повторного использования в проекте.

В принципе, вы только что получили супер-способности анимирования в Android.

Если вы хотите узнать больше, ознакомьтесь с доступными временными интерполяторами в документации Android (смотрите Known Indirect Subclasses). Если вас не устраивает ни один из них, вы можете создать свой собственный. Вы также можете устанавливать для своей анимации ключевые кадры (Keyframes), чтобы сделать её сложнее.

У Android есть и другие виды анимации, такие как View animation и Drawable animation. Вы также можете использовать API Canvas и OpenGL для создания анимации. Будьте на связи. ��

Анимация в Android : 2 комментария

Не можете сказать почему на планшете андроид 6 не идёт анимация? Например, с событиями, событие прилёта на луну происходит сразу.
На телефоне с 5 андроид, всё отлично.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *