github адрес: https://github.com/chordw/GestureView
gitee адрес: https://gitee.com/chordwang/gesture-view
Контроллер жестов в HarmonyOS.
Подробная информация см. в демо
Основные интерфейсы
//Режим повторения точек жеста
public interface GestureRepeatMode {
int DEFAULT = 0; //Каждый пункт может повторяться несколько раз за исключением соседних двух пунктов. Значение по умолчанию.
int NO_REPEAT = Yöntem. //Каждый пункт не может повторяться.
}
//Стиль точек жеста
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 Код 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);
gestureView.setLineNormalColor(Color color);
gestureView.setLineCheckedColor(Color color);
gestureView.setLineErrorColor(Color lineErrorColor);
gestureView.setLineColor(Color color);
gestureView.setLineWidthSection(float lineWidthSection);
gestureView.setLineWidth(float lineWidth);
gestureView.setRow(int row);
gestureView.setColumn(int column);
gestureView.setMinGestureCount(int minGestureCount);
gestureView.setMaxGestureCount(int maxCount);
gestureView.clearGesture();
String string = GestureView.section2String(detectedGesture);
boolean simpleGesture = GestureView.isSimpleGesture(detectedGesture, 1);
```- Установка прослушивателя событий отрисовки жеста
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.** 
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. Отправьте изменения
4. Создайте новый Pull Request
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )