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

OSCHINA-MIRROR/chinasoft2_ohos-Ohos-InfiniteCards

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

InfiniteCards

Проектное описание

  • Название проекта: InfiniteCards
  • Серия: адаптация и портирование третьих сторон для OpenHarmony
  • Функционал: InfiniteCards — это представление переключаемых карточек с возможностью настройки анимации
  • Состояние портирования: основные функции завершены
  • Различия при вызове: отсутствуют
  • Версия SDK: SDK6, DevEco Studio2.2 Beta1
  • Базовая версия: Release 1.0.5

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

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

Инструкция по установке

  1. В файле build.gradle в корневой директории проекта,
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/releases/'
        }
    }
}
  1. В файле build.gradle модуля entry,
dependencies {
    implementation('com.gitee.chinasoft_ohos:infinite-cards:1.0.6')
    ......  
}

Проект можно запустить непосредственно на SDK6, DevEco Studio2.2 Beta1. Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, и создайте новый проект в соответствии со своей версией, затем скопируйте соответствующие файлы нового проекта в корневую директорию.## Инструкция по использованию Параметры

  • animType : тип анимации
    • front : перемещает выбранную карточку на первое место
    • switchPosition : меняет местами выбранную карточку и первую карточку
    • frontToLast : перемещает первую карточку на последнее место, остальные карточки передвигаются на одно место назад
  • cardRatio : соотношение ширины и высоты карточек
  • animDuration : продолжительность анимации карточек
  • animAddRemoveDelay : задержка между анимациями соседних карточек при добавлении или удалении группы карточек
  • animAddRemoveDuration : продолжительность анимации при добавлении или удалении группы карточекXML-разметка
<com.bakerj.infinitecards.InfiniteCardView
    ohos:id="$+id:view"
    ohos:height="match_parent"
    ohos:width="match_parent"
    app:mCardRatio="1"
    app:animDuration="1000"/>

Настройка адаптера
Прямое наследование от BaseItemProvider

class MyAdapter extends BaseItemProvider {
  ...
}
mAdapter = new MyAdapter(resId);
mCardView.setAdapter(mAdapter);

Анимационные переходы и интерполяторы
По умолчанию (можно не указывать, либо установить какое-либо значение по умолчанию)

mCardView.setAnimInterpolator(new LinearInterpolator());
mCardView.setTransformerToFront(new DefaultTransformerToFront());
mCardView.setTransformerToBack(new DefaultTransformerToBack());
mCardView.setZIndexTransformerToBack(new DefaultZIndexTransformerCommon());

Пользовательская настройка
Установка аниматора и интерполятора позволяет создать пользовательскую анимацию в зависимости от параметров обратного вызова

mCardView.setTransformerToBack(new AnimationTransformer() {
    @Override
    public void transformAnimation(Component view, float fraction, int cardWidth, int cardHeight, int fromPosition, int toPosition) {
        int positionCount = fromPosition - toPosition;
        float scale = (0.8f - 0.1f * fromPosition) + (0.1f * fraction * positionCount);
        view.setScaleX(scale);
        view.setScaleY(scale);
        if (fraction < 0.5) {
            view.setTranslationX(cardWidth * fraction * 1.5f);
            view.setRotation(-45 * fraction);
        } else {
            view.setTranslationX(cardWidth * 1.5f * (1f - fraction));
            view.setRotation(-45 * (1 - fraction));
        }
    }
});

Тестовая информация

Код проверен CodeCheck без ошибок

Код проверен CloudTest без ошибок

Прошел вирусную безопасность

Функционал текущей версии демо совпадает с оригинальным компонентом#### Версионирование

  • 1.0.6
  • 0.0.1-SNAPSHOT

Информация о правах и лицензиях

InfiniteCards распространяется под лицензией Apache 2.0.

Copyright 2017 BakerJ.

Licensed under the Apache License, Version 2.0 (the "Лицензия");
you may not use this file except in compliance with the Лицензия.
You may obtain a copy of the Лицензия at following link.

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the Лицензия is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the Лицензия for the specific language governing permissions and
limitations under the License.

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

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

Введение

InfiniteCards — это настраиваемое представление переключения карточек с динамическими эффектами. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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