1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-AnimationEasingFunctions

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Анимационные функции замедления

Содержание

  • [Функциональное описание](#Функциональное описание)
  • Демонстрация
  • Интеграция
  • [Примеры использования](#Примеры использования)
  • [Описание интерфейса](#Описание интерфейса)

Функциональное описание

  • ohos функции анимации замедления. Сделайте анимацию более реалистичной! Реализуйте следующие различные траектории движения анимации:
  • BackEaseIn
  • BackEaseOut
  • BackEaseInOut
  • BounceEaseIn
  • BounceEaseOut
  • BounceEaseInOut
  • CircEaseIn
  • CircEaseOut
  • CircEaseInOut
  • CubicEaseIn
  • CubicEaseOut
  • CubicEaseInOut
  • ElasticEaseIn
  • ElasticEaseInOut
  • ElasticEaseOut
  • ExpoEaseIn
  • ExpoEaseOut
  • ExpoEaseInOut
  • QuadEaseIn
  • QuadEaseOut
  • QuadEaseInOut
  • QuintEaseIn
  • QuintEaseOut
  • QuintEaseInOut
  • SineEaseIn
  • SineEaseOut
  • SineEaseInOut
  • Linear

Демонстрация

Функция замедления анимации Функция замедления анимации

Интеграция

Способ один:
В файле build.gradle проекта измените версию classpath на соответствующую версию (то есть версию, используемую в вашем новом проекте IDE).
Добавьте har в папку libs файла entry.
Добавьте следующий код в файл build.gradle entry:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])


Способ два:
allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:AnimationEasingFunctions:1.0.2' 

Примеры использования

    private ListContainer mEasingList;
    private EasingAdapter mAdapter;
    private Component mTarget;
    private long mDuration = 2000;
    private DrawView mHistory;

        mEasingList = (ListContainer) findComponentById(ResourceTable.Id_easing_list);
        mAdapter = new EasingAdapter(this);
        mEasingList.setItemProvider(mAdapter);
        mTarget = findComponentById(ResourceTable.Id_target);
        mHistory = (DrawView) findComponentById(ResourceTable.Id_history);
        mEasingList.setItemClickedListener(new ListContainer.ItemClickedListener() {
            @Override
            public void onItemClicked(ListContainer listContainer, Component component, int position, long var4) {
                mHistory.clear();
                Skill skill = (Skill) component.getTag();
                // Анимационная группа
                AnimatorGroup set = new AnimatorGroup();
                mTarget.setTranslationX(0);
                mTarget.setTranslationY(0);
                // Числовая анимация
                AnimatorValue animator = new AnimatorValue();
                animator.setDuration(mDuration);
                BaseEasingMethod easing = skill.getMethod(mDuration);
                // Рисование начальной точки
                mHistory.drawPoint(0, mDuration, 0 - vpToPixels(getContext(), 60));
                set.runSerially(
                        Glider.glide(skill, mDuration, animator,new AnimatorValue.ValueUpdateListener() {
                    @Override
                    public void onUpdate(AnimatorValue animatorValue, float value) {

                        float start = 0;
                        float end = -vpToPixels(getContext(), 157) ;
                        float result = easing.evaluate(value, start, end);
                        mTarget.setTranslationY(result);
                        mHistory.drawPoint(mDuration * value, mDuration, result - vpToPixels(getContext(), 60));
                    }
                }));
                set.setDuration(mDuration);
                set.start();
            }
        });

Описание интерфейса


     /**
     * Установить анимацию
     *
     * @param skill   Тип анимации
     * @param duration Продолжительность
     * @param animator   Числовая анимация
     * @param valueUpdateListener   Анимационный прослушиватель
     * @return Объект анимации
     */
    public static AnimatorValue glide(
            Skill skill,
            float duration,
            AnimatorValue animator,
            AnimatorValue.ValueUpdateListener valueUpdateListener)

     /**
     * Установить анимацию
     *
     * @param skill   Тип анимации
     * @param duration Продолжительность
     * @param animator   Числовая анимация
     * @return Объект анимации
     */
    public static AnimatorValue glide(
            Skill skill,
            float duration,
            AnimatorValue animator)

      /**
      * Управлять выражением анимации
      *
      * @param duration Продолжительность
      * @return BaseEasingMethod
      */
     public BaseEasingMethod getMethod(float duration)

    /**
     * Получить результат анимации
     *
     * @param fraction Степень завершения анимации
     * @param startValue Начальное положение анимации
     * @param endValue Конечное положение анимации
     * @return Результат анимации

``` ```
    public final float evaluate(float fraction, Float startValue, Float endValue)

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-AnimationEasingFunctions.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-AnimationEasingFunctions.git
oschina-mirror
HarmonyOS-tpc-AnimationEasingFunctions
HarmonyOS-tpc-AnimationEasingFunctions
master