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

OSCHINA-MIRROR/chinasoft_ohos-BGABanner-ohos

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

BGABanner-Ohos

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

  • Название проекта: BGABanner-Ohos
  • Серия: адаптация и портирование третьих сторон для OpenHarmony
  • Функционал: рекламные баннеры с циклическим воспроизведением
  • Состояние портирования: основные функции
  • Различия при вызове: поскольку в OpenHarmony нет соответствующего API анимации и событий, невозможно реализовать эффекты анимации при смене изображений и одновременного скольжения изображений и текста. Внутреннее циклическое воспроизведение показывает изображения, отличные от оригинальной библиотеки, из-за недоступности сервера автора изображений. Сейчас используется локальная загрузка изображений.
  • Версия SDK: 6, DevEco Studio 2.2 Beta1
  • Базовая версия: Release v3.0.0

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

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

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

Метод 1:

  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:BGABanner-Ohos:1.0.0')
  ......
}

Проект может быть запущен непосредственно при использовании SDK 6 и DevEco Studio 2.2 Beta1.

Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, создайте новый проект в соответствии со своей версией и скопируйте соответствующие файлы нового проекта в корневой каталог.

Инструкция по использованию

BGABanner-Ohos — это реализация страницы слайдера для циклического воспроизведения нескольких рекламных изображений и возможности ручного скольжения.

  1. Добавьте BGABanner в файл макета.

    Импорт: xmlns:app="http://schemas.huawei.com/apk/res/ohos"

    <cn.bingoogolapple.bgabanner.BGABanner
        ohos:id="$+id:banner_guide_foreground"
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:visibility="visible"
        app:banner_pageChangeDuration="1000"
        app:banner_pointAutoPlayAble="false"
        app:banner_pointTopBottomMargin="15"
        app:banner_transitionEffect="2"/>
  2. Конфигурация данных BGABanner в Ability.

    Есть несколько способов конфигурирования источника данных, здесь приведены три метода.

    Метод 1: Конфигурация источника данных через передачу модели данных и использование адаптера.

    mContentBanner.setAdapter(new BGABanner.Adapter<Image, String>() {
        @Override
        public void fillBannerItem(BGABanner banner, Image itemView, String model, int position) {
            // Здесь используется фреймворк для загрузки сетевых изображений
        }
    });
    mContentBanner.setData(Arrays.asList("путь к сетевому изображению 1", "путь к сетевому изображению 2", "путь к сетевому изображению 3"), Arrays.asList("подсказочный текст 1", "подсказочный текст 2", "подсказочный текст 3"));

    Метод 2: Конфигурация источника данных путём передачи коллекции представлений.

    List<Component> components = new ArrayList<>();
    components.add(LayoutScatter.getInstance(getContext()).parse(ResourceTable.Id_guide_one, null, false));
    components.add(LayoutScatter.getInstance(getContext()).parse(ResourceTable.Id_guide_two, null, false));
    components.add(LayoutScatter.getInstance(getContext()).parse(ResourceTable.Id_guide_three, null, false));
    
    mContentBanner.setData(components);

    Метод 3: Конфигурация источника данных путём передачи ID ресурсов изображений.

    BGALocalImageSize localImageSize = new BGALocalImageSize(720, 1280, 320, 640);
    mContentBanner.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
            ResourceTable.Media_guide_background_1,
            ResourceTable.Media_guide_background_2,
            ResourceTable.Media_guide_background_3);
  3. Отслеживание события клика на элементах рекламы.

    mContentBanner.setDelegate(new BGABanner.Delegate<Image, String>() {
        @Override
        public void onBannerItemClick(BGABanner banner, Image itemView, String model, int position) {
            new ToastDialog(getContext()).setText("Кликнули на позицию " + position).show();
        }
    });
  4. Установка ID ресурсов кнопок «вход» и «пропустить» и их событий клика.

    mBackgroundBanner.setEnterSkipViewIdAndDelegate(getAbility(), ResourceTable.Id_btn_guide_enter, ResourceTable.Id_tv_guide_skip, () -> {
        Intent resultData = new Intent();
        Operation operation = new Intent.OperationBuilder()
                .withDeviceId("")
                .withBundleName("cn.bingoogolapple.bgabanner.demo")
                .withAbilityName("cn.bingoogolapple.bgabanner.demo.ui.MainAbility")
                .build();
        resultData.setOperation(operation);
        startAbility(resultData);
    
        Intent forwardData = new Intent();
        Operation forwardOperation = new Intent.OperationBuilder()
                .withDeviceId("")
                .withBundleName("cn.bingoogolapple.bgabanner.demo.ui")
                .withAbilityName("cn.bingoogolapple.bgabanner.demo.ui.GuideAbility")
                .build();
        forwardData.setOperation(forwardOperation);
        GuideAbilitySlice.this.stopAbility(forwardData);
    });

Свойства атрибутов:

<!-- Контейнер для указателей -->
banner_pointContainerBackground
<!-- Лево-правый внутренний отступ контейнера указателей -->
banner_pointContainerLeftRightPadding
<!-- Верхний-нижний внешний отступ указателя -->
banner_pointTopBottomMargin
<!-- Лево-правый внешний отступ указателя -->
banner_pointLeftRightMargin
<!-- Расположение указателя -->
banner_dicatorLeftOrRightOrCenter="right"
<!-- Расположение текста указателя -->
banner_dicatorTextLeftOrRightOrCenter="left"
<!-- Включение автоматического воспроизведения -->
banner_pointAutoPlayAble
<!-- Интервал времени между автоматическими воспроизведениями -->
banner_pointAutoPlayInterval
<!-- Продолжительность перехода между страницами -->
banner_pageChangeDuration
<!-- Цвет текста подсказки -->
banner_tipTextColor
<!-- Размер текста подсказки -->
banner_tipTextSize
<!-- Обложка для временной замены при загрузке сетевых данных -->
banner_placeholderDrawable
<!-- Использование цифровых указателей -->
banner_isNumberIndicator
<!-- Цвет текста цифровых указателей -->
banner_numberIndicatorTextColor
<!-- Размер текста цифровых указателей -->
banner_numberIndicatorTextSize
<!-- Фон цифровых указателей -->
banner_numberIndicatorBackground
<!-- Отображение указателей при одной странице данных -->
banner_isNeedShowIndicatorOnOnlyOnePage
<!-- Отступ содержимого от нижней части BGABanner -->
banner_contentBottomMargin
<!-- Соотношение сторон, если больше 0, высота будет вычисляться на основе ширины -->
banner_aspectRatio
<!-- Масштабирование обложки и ресурсного изображения -->
ohos:ScaleMode

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

Проверка кода CodeCheck прошла успешно

Проверка CloudTest прошла успешно

Программа прошла проверку безопасности от вирусов

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

История версий

  • 1.0.0

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

Copyright 2015 bingoogolapple

Лицензировано согласно лицензии Apache License, Version 2.0 ("Лицензия").
Вы можете использовать этот файл только в соответствии с Лицензией.
Вы можете получить копию Лицензии по адресу

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

Кроме случаев, предусмотренных применимыми законами или соглашениями в письменной форме, программное обеспечение,
распространяемое в рамках Лицензии, предоставляется "КАК ЕСТЬ".
БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ КАКОГО-ЛИБО ТИПА, как явных, так и подразумеваемых.
Смотрите Лицензию для конкретного языка, регулирующего права и условия использования этого программного обеспечения.

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

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

Введение

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

Обновления

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

Участники

все

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

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