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

OSCHINA-MIRROR/chinasoft_ohos-Captcha

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 02:04 b330e45

Captcha

Проект

  • Название проекта: Слайдер с капчей.
  • Серия: Адаптация сторонних компонентов openharmony.
  • Функции: слайдер с капчей.
  • Состояние переноса проекта: основная функция выполнена, есть различия в эффекте слайдера.
  • Вызов различий: нет.
  • Версия разработки: SDK6, DevEco Studio2.2 Beta1.
  • Базовая версия: Release 1.12.

Эффект демонстрации

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

  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:captcha:1.0.2')
   ......  
}

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

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

Компонент состоит из двух основных элементов: Img и Slider.

  1. Добавьте Captcha в макет:
<com.luozm.captcha.Captcha
        ohos:id="$+id:captcha"
        ohos:width="match_parent"
        ohos:height="match_content"
        app:src="$media:cat"/>
  1. Добавьте код Java:
   captcha = (Captcha) findComponentById(ResourceTable.Id_captCha);
   captcha.setCaptchaListener(new Captcha.CaptchaListener() {
            @Override
            public String onAccess(long time) {
                new ToastDialog(getContext())
                        .setText( "验证成功")
                        .show();
                return "验证通过";
            }

            @Override
            public String onFailed(int failedCount) {
               new ToastDialog(getContext())
                        .setText( "验证失败,失败次数"+ count)
                        .show();
                return "验证失败";
            }

            @Override
            public String onMaxFailed() {
               new ToastDialog(getContext())
                        .setText( "验证超过次数,你的帐号被封锁")
                       .show();
                return "验证超过次数,你的帐号被封锁";
            }
        });
  1. (Необязательно) Настройте стиль капчи:
  1. Создайте класс стратегии, который наследуется от класса CaptchaStrategy, и переопределите методы стратегии. Для справки используйте класс DefaultCaptchaStrategy.
public abstract class CaptchaStrategy {

    protected Context mContext;

    public CaptchaStrategy(Context ctx) {
        this.mContext = ctx;
    }

    protected Context getContext() {
        return mContext;
    }

    /**
     * Определяет форму недостающего блока
     *
     * @param blockSize в dp, обратите внимание на преобразование в px, размер недостающего блока, обратите внимание, что границы Path не должны превышать этот размер
     * @return путь формы
     */
    public abstract Path getBlockShape(int blockSize);

    /**
     * Согласно ширине и высоте всей картинки капчи и размеру недостающих блоков, определяет положение недостающих блоков
     *
     * @param width ширина картинки
     * @param height высота картинки
     * @param blockSize размер блока
     * @return информация о положении блока
     */
    public abstract PositionInfo getBlockPostionInfo(int width, int height, int blockSize);

    /**
 * Определяет положение изображения скользящего блока (только полезно, когда установлен режим без скользящей полосы, рекомендуется переписать)
 *
 * @param ширина ширина картинки
 * @param высота высота картинки
 * @param blockSize размер блока
 * @return информация о положении блока
 */
    public PositionInfo getPositionInfoForSwipeBlock(int width, int height, int blockSize){
        return getBlockPostionInfo(width,height,blockSize);
    }

    /**
     * Определяет Paint для тени недостающей части
     */
    public abstract Paint getBlockShadowPaint();

    /**
     * Получает Paint для изображения недостающего блока
     */
    public abstract Paint getBlockBitmapPaint();

    /**
     * Украшает изображение скользящего блока, выполняется после рисования изображения, то есть перед рисованием переднего плана скользящего блока
     * @params холст
     * @параметры shape форма недостающего блока
     */
    public void decoreateSwipeBlockBitmap(Canvas canvas, Path shape) {

    }
}
  1. Добавьте код Java:
captCha.setCaptchaStrategy(new XXXCaptchaStrategy(context));
  1. (Необязательно) Настройка стиля скользящей панели: аналогично настройке стиля, как у слайдера.
<com.luozm.captcha.Captcha
    ohos:id="$+id:captcha"
    ohos:width="match_parent"
    ohos:height="match_content"
    app:mode="mode_bar"
    app:src="$media:cat1"
    app:blockSize="150"
    app:max_fail_count="5"
    app:progressbg="$graphic:po_seekbar"
    app:thumbbg="$graphic:thumb"/>
captcha.setSeekBarStyle(ResourceTable.Graphic_po_seekbar,ResourceTable.Graphic_thumb);

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

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

Версии

1.0.2

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

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

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