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

OSCHINA-MIRROR/chordwang-gesture-view

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

GestureView

Платформа

GitHub адрес: https://github.com/chordw/GestureView

Gitee адрес: https://gitee.com/chordwang/gesture-view

Описание

Компонент для работы с жестами в HarmonyOS.

Изображение

GIF

Описание функций- Поддержка установки количества колонок.

  • Поддержка установки количества строк.
  • Поддержка установки минимального количества точек жеста. Значение по умолчанию равно 1.
  • Поддержка установки максимального количества точек жеста. Значение по умолчанию равно произведению количества строк на количество колонок.
  • Поддержка установки стиля точек жеста. Значение по умолчанию равно линейному стилю, можно установить пользовательское изображение.
  • Поддержка установки цвета линий пути жеста.
  • Поддержка установки изображения неактивного состояния для пользовательского изображения точек жеста.
  • Поддержка установки изображения активного состояния для пользовательского изображения точек жеста.
  • Поддержка установки изображения ошибочного состояния для пользовательского изображения точек жеста.
  • Поддержка установки режима отображения пути жеста. Значение по умолчанию равно отключению отображения пути после завершения жеста.
  • Поддержка установки порядка отрисовки точек жеста и линий пути. Значение по умолчанию равно отрисовке точек жеста поверх линий пути.
  • Поддержка установки режима повторения пути жеста. Значение по умолчанию равно повторению каждого узла, кроме соседних двух узлов.#### Инструкция по использованию

Подробная информация в демо

Основные интерфейсы

    // Режим повторения узлов жеста
    public interface GestureRepeatMode {
        int DEFAULT = 0; // Каждый узел, кроме соседних двух, может повторяться. Значение по умолчанию.
        int NO_REPEAT = 1; // Каждый узел не может повторяться.
    }
```    // Стиль узлов жеста
    public interface GestureStyle {
        int LINE = 0; // Линия
        int IMAGE = 1; // Изображение
    }
    
    // Текущее состояние
    public interface GestureState {
        int NORMAL = 0; // Обычное состояние
        int ERROR = 1; // Ошибка
    }
    
    ```    
    // Режим отображения жеста при завершении
    public interface GestureDisappearMode {
        int APPEAR_ON_FINISH = 11; // Отображать отрисованный путь при завершении жеста
        int DISAPPEAR_ON_FINISH = 12; // Не отображать отрисованный путь при завершении жеста
        int APPEAR_ONLY_ERROR_ON_FINISH = 13; // Отображать отрисованный путь при завершении жеста только в случае ошибки
    }
    
    // Порядок отрисовки жеста
    public interface GestureDrawOrder {
        int SECTION_TOP = 0; // Секция сверху
        int LINE_TOP = 1; // Линия сверху
    }
    
    // Слушатель результатов
    public interface DetectedListener {
        int DETECT_SUCCESS = 0; // Успешная идентификация, нормальное количество точек жеста
        int DETECT_LIMITED_MIN = 10; // Неуспешная идентификация, недостаточное количество точек жеста
        int DETECT_LIMITED_MAX = 11; // Неуспешная идентификация, превышение максимального количества точек жеста
        int DETECT_CANCEL = 20; // Неуспешная идентификация, неожиданное отменение
    }
    
    /**
     * @param code            Результат кода
     * @param detectedGesture code равен DETECT_SUCCESS, когда не null, в остальных случаях null
     */
    void onDetectedGesture(int code, List<Section> detectedGesture);
    ```
**Основные методы**

- Установка идентификатора ресурса изображения для незадействованного состояния.

gestureView.setImageNormal(ResourceTable.Media_icon_zao_gesture_normal);


- Установка изображения для незадействованного состояния.

gestureView.setImageNormal(PixelMapHolder imageNormal);


- Установка идентификатора ресурса изображения для задействованного состояния.

gestureView.setImageChecked(int resId);


- Установка изображения для задействованного состояния.

gestureView.setImageChecked(PixelMapHolder imageChecked);


- Установка идентификатора ресурса изображения для состояния ошибки.

gestureView.setImageError(int resId);


- Установка изображения для состояния ошибки.

gestureView.setImageError(PixelMapHolder imageError);


- Установка цвета линии для незадействованного состояния. По умолчанию Color.GREEN.

gestureView.setLineNormalColor(Color color);


- Установка цвета линии для задействованного состояния. По умолчанию Color.GREEN.

gestureView.setLineCheckedColor(Color color);


- Установка цвета линии для состояния ошибки. По умолчанию Color.RED.

gestureView.setLineErrorColor(Color lineErrorColor);


- Установка цвета линии по умолчанию. По умолчанию Color.GREEN.

gestureView.setLineColor(Color color);


- Установка ширины линии для раздела. По умолчанию 4px.

gestureView.setLineWidthSection(float lineWidthSection);


- Установка ширины линии. По умолчанию 4px.

gestureView.setLineWidth(float lineWidth);


- Установка количества строк в сетке.

gestureView.setRow(int row);


gestureView.setColumn(int column);


- Установка минимального количества точек для соединения.

gestureView.setMinGestureCount(int minGestureCount);


- Установка максимального количества точек для соединения.

gestureView.setMaxGestureCount(int maxCount);


- Очистка данных задействованных точек.

gestureView.clearGesture();


- Преобразование сетки точек в строку. Горизонтальное расположение, начальное значение 0, последующие значения увеличиваются на 1.

String string = GestureView.section2String(detectedGesture);


- Определение простоты жеста: количество точек перегиба меньше заданного значения. Если фактическое количество точек перегиба меньше ожидаемого, жест считается простым. В противном случае, жест считается сложным.
```java
boolean simpleGesture = GestureView.isSimpleGesture(detectedGesture, 1);
```- Установка слушателя для отслеживания жестов
```java
gestureView.setOnDetectedListener((code, detectedGesture) -> {
            // Обратный вызов при завершении жеста.
            if (code == GestureView.DetectedListener.DETECT_SUCCESS) { // Жест успешно нарисован.
                String string = GestureView.section2String(detectedGesture);
                boolean simpleGesture = GestureView.isSimpleGesture(detectedGesture, 1);
                string = (simpleGesture ? "Пароль слишком простой:" : "") + string;
                new ToastDialog(getAbility())
                        .setText(string)
                        .setAlignment(LayoutAlignment.CENTER)
                        .show();
            } else if (code == GestureView.DetectedListener.DETECT_LIMITED_MIN) { // Количество точек жеста меньше минимального значения.
                gestureView.setGestureState(GestureView.GestureState.ERROR);
                new ToastDialog(getAbility())
                        .setText("Пожалуйста, соедините минимум " + gestureView.getMinGestureCount() + " точек")
                        .setAlignment(LayoutAlignment.CENTER)
                        .show();
            } else if (code == GestureView.DetectedListener.DETECT_LIMITED_MAX) { // Количество точек жеста превышает максимальное значение.
                gestureView.setGestureState(GestureView.GestureState.ERROR);
                new ToastDialog(getAbility())
                        .setText("Пожалуйста, соедините максимум " + gestureView.getMaxGestureCount() + " точек")
                        .setAlignment(LayoutAlignment.CENTER)
                        .show();
            }
        });
```#### Gradle
**Проект загружен в Maven Central.** ![](https://img.shields.io/maven-central/v/io.gitee.chordwang/gestureview)
```groovy
implementation 'io.gitee.chordwang:gestureview:1.0.0' // Последняя версия указана выше

Добавьте следующее в файл build.gradle в корневой директории проекта:

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

Лицензии

   Copyright [2021] [chordwang]

   Лицензировано по лицензии Apache License, Version 2.0 («Лицензия»);
   вы можете использовать этот файл только в соответствии с условиями Лицензии.
   Вы можете получить копию Лицензии по адресу http://www.apache.org/licenses/LICENSE-2.0

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

Как внести вклад

  1. Fork этот репозиторий
  2. Создать новую ветку Feat_xxx
  3. Подать пулл-запрос

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

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

Введение

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

Обновления

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

Участники

все

Язык

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

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