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

OSCHINA-MIRROR/chinasoft_ohos-RollViewPager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use
Limitations
  • Trademark use
  • Liability
  • Warranty
Conditions
  • License and copyright notice
  • State changes
README.md 6.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 08:18 079bd02

RollViewPager

Проект

  • Название проекта: RollViewPager.
  • Серия: openharmony, сторонние компоненты, адаптация.
  • Функция: компонент для создания карусели изображений.
  • Состояние адаптации проекта: основная функция выполнена.
  • Различия в вызовах: есть. В исходном проекте было три метода для приостановки и воспроизведения, в OHOS остался один метод.
  • Версия разработки: SDK6, DevEco Studio 2.2 Beta1.
  • Базовая версия: 1.4.6.

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

example

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

  1. Добавьте зависимость в файл build.gradle на уровне модуля, добавив ссылку на jar-пакет в каталоге libs в теге dependencies.
// Добавляем maven-репозиторий
repositories {
    maven {
        url 'https://s01.oss.sonatype.org/content/repositories/release/'
    }
}
// Добавляем зависимость библиотеки
dependencies {
    implementation 'com.gitee.chinasoft_ohos:rollviewpager:1.0.1'   
}

Проект можно запустить напрямую в SDK6 и DevEco Studio 2.2 Beta1. Если запуск не удаётся, удалите файлы .gradle, .idea, build, gradle и build.gradle из проекта и создайте новый проект с соответствующей версией. Затем скопируйте файлы из нового проекта в корневую папку.

Использование

  • Свойства XML:
<com.jude.rollviewpager.RollPagerView
      ohos:height="180vp"
      ohos:width="match_parent"
/>
  • Пример использования Java:

Предоставьте адаптер PageSliderAdapter, который наследуется от класса PageSliderProvider. В этом классе реализуйте метод createPageInContainer для определения пользовательского интерфейса, который будет отображаться в карусели.

@Override
public Object createPageInContainer(ComponentContainer componentContainer, int i) {

    ViewHolder viewHolder;
    Component component = null;

    if (component == null) {
        component = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_pager_item, null, false);
        if (!(component instanceof ComponentContainer)) {
            return "";
        }
        componentContainer.addComponent(component);
        viewHolder = new ViewHolder();
        viewHolder.image = (Image) componentContainer.findComponentById(ResourceTable.Id_image_pager);
        component.setTag(this);
    } else {
        viewHolder = (ViewHolder) component.getTag();
    }
    viewHolder.image.setPixelMap(pages.get(i));
    viewHolder.image.setScaleMode(Image.ScaleMode.STRETCH);

    return componentContainer;
}
  • Реализация адаптера и добавление функций карусели:
/**
 * Установка адаптера и изображений для карусели
 *
 * @param pageSliderAdapter Адаптер
 * @param page Коллекция изображений
 */
public void setadapter(PageSliderAdapter pageSliderAdapter, ArrayList<Integer> page) {
    pageSlider.setProvider(pageSliderAdapter);
    this.pages = page;
}
  • Функции паузы и воспроизведения. По умолчанию карусель воспроизводится. Вызов этого метода позволяет ей автоматически определять состояние паузы или воспроизведения.
private boolean isStartEnd = true; // true — карусель по умолчанию воспроизводится
/**
 * Пауза или воспроизведение. true — воспроизведение, flase — пауза, по умолчанию — воспроизведение
 */
public void setStartEnd() {
    if (isStartEnd) {
        this.isStartEnd = false;
    } else {
        this.isStartEnd = true;
    }
}
  • Добавление изображений в коллекцию list и создание нового адаптера для компонента:
ArrayList<Integer> page = new ArrayList<>();
page.add(ResourceTable.Media_img1);
page.add(ResourceTable.Media_img2);
page.add(ResourceTable.Media_img3);
page.add(ResourceTable.Media_img4);
page.add(ResourceTable.Media_img5);
PageSliderAdapter bannerAdapter1 = new PageSliderAdapter(page, getContext());
rollPagerView.setadapter(bannerAdapter1, page);
  • ClickedListener, событие клика по элементу:
rollPagerView.setClickedListener(new Component.ClickedListener() {
    @Override
    public void onClick(Component component) {
       // Здесь напишите собственный код логики
    }
});

Тестирование

CodeCheck — тестирование кода без исключений.
CloudTest — тестирование кода без исключений.
Проверка безопасности — прошла успешно.
Текущая версия demo функционально практически не отличается от исходного компонента OHOS.

Версии

1.0.1

Авторские права и лицензии

Copyright 2015 Jude

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at'

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

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

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/chinasoft_ohos-RollViewPager.git
git@api.gitlife.ru:oschina-mirror/chinasoft_ohos-RollViewPager.git
oschina-mirror
chinasoft_ohos-RollViewPager
chinasoft_ohos-RollViewPager
master