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

OSCHINA-MIRROR/archermind-ti-PatternLockView

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

PatternLockView

Проект

  • Язык программирования: Java.
  • Простое в использовании, настраиваемое графическое средство управления PatternLockView с дизайном Material Design.

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

Рисунок 1. Пример использования PatternLockView.

Установка

Способ 1

  1. Скомпилируйте patternlockview и patternlockview_reactive.
  2. Запустите DevEco Studio и импортируйте скомпилированный har-пакет в каталог «entry->libs» проекта.
  3. В файле build.gradle на уровне модуля добавьте зависимость, указав ссылку на jar-пакеты в каталоге libs.
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
    ……
}

В SDK4 и DevEco Studio 2.1 beta2 проект можно запустить напрямую. Если не удаётся запустить, удалите файлы .gradle, .idea, build, gradle, build.gradle и создайте новый проект, скопировав соответствующие файлы из нового проекта в корневой каталог.

Способ 2 Добавьте зависимости в файл build.gradle:

dependencies {
    ......
    implementation 'com.gitee.archermind-ti:patternlockview:1.0.0-beta'
    implementation 'com.gitee.archermind-ti:patternlockview-reactive:1.0.0-beta'
}

Применение

  1. Используйте PatternLockView в макете:

    
    

<com.andrognito.patternlockview.PatternLockView ohos:id="$+id:patter_lock_view" ohos:height="280vp" ohos:width="280vp"/>


Этого достаточно, чтобы View появился в макете. Однако вы, вероятно, захотите добавить Listener для отслеживания изменений в шаблоне.

2. Получите объект в коде и добавьте Listener:

 ```java
 mPatternLockView = (PatternLockView) findViewById(R.id.pattern_lock_view);
 mPatternLockView.addPatternLockListener(mPatternLockViewListener);

Реализуйте Listener следующим образом:

private PatternLockViewListener mPatternLockViewListener = new PatternLockViewListener() {
    @Override
    public void onStarted() {
        HiLog.debug(LABEL, "Pattern drawing started");
    }

    @Override
    public void onProgress(List<PatternLockView.Dot> progressPattern) {
        HiLog.debug(LABEL, "Pattern progress: " +
                    PatternLockUtils.patternToString(mPatternLockView, progressPattern));
    }

    @Override
    public void onComplete(List<PatternLockView.Dot> pattern) {
        HiLog.debug(LABEL, "Pattern complete: " +
                    PatternLockUtils.patternToString(mPatternLockView, pattern));
    }

    @Override
    public void onCleared() {
        HiLog.debug(LABEL, "Pattern has been cleared");
    }
};

Готово! Ваш PatternLockView готов к использованию. Возможно, вы также захотите удалить Listener, когда он больше не нужен:

removePatternLockListener(mPatternLockViewListener);
  1. (Необязательно: ReactiveX Interface)

    Для поклонников RxJava библиотека поддерживает привязку к представлению RxJava 2. Вы можете подписаться на view, чтобы получать поток изменений шаблона.

    RxPatternLockView.patternChanges(mPatternLockView).subscribe(new Consumer<PatternLockCompoundEvent>() {
        @Override
        public void accept(PatternLockCompoundEvent event) throws Exception {
            if (event.getEventType() == PatternLockCompoundEvent.EventType.PATTERN_STARTED) {
                HiLog.debug(LABEL,"Pattern drawing started");
            } else if (event.getEventType() == PatternLockCompoundEvent.EventType.PATTERN_PROGRESS) {
                HiLog.debug(LABEL,"Pattern progress: " +
                            PatternLockUtils.patternToString(mPatternLockView, event.getPattern()));
            } else if (event.getEventType() == PatternLockCompoundEvent.EventType.PATTERN_COMPLETE) {
                HiLog.debug(LABEL,"Pattern complete: " +
                            PatternLockUtils.patternToString(mPatternLockView, event.getPattern()));
            } else if (event.getEventType() == PatternLockCompoundEvent.EventType.PATTERN_CLEARED) {
                HiLog.debug(LABEL,"Pattern has been cleared");
            }
        }
    });

    Если вас не интересуют составные события, вы должны подписаться на patternComplete() и patternProgress(), чтобы получать конкретные обновления.

Настройка

Вы можете использовать несколько параметров настройки, чтобы полностью изменить внешний вид и функциональность этого представления в соответствии с вашими потребностями.

XML

Вы можете добавить различные атрибуты в XML-макет для PatternLockView:

app:dotCount="3"                                        // Change the no.of dots in a row (or column)
app:dotNormalSize="12vp"                                // Change the size of the dots in normal state
app:dotSelectedSize="24vp"                              // Change the size of the dots in selected state
app:pathWidth="4vp"                                     // Change the width of the path
app:aspectRatioEnabled="true"                           // Set if the view should respect custom aspect ratio
app:aspectRatio="square"
``` ```
// Устанавливаем значения между "square", "width_bias", "height_bias"
app:normalStateColor="$color:white"                     // Устанавливаем цвет вида шаблона в нормальном состоянии
app:correctStateColor="$color:primary"                  // Устанавливаем цвет вида шаблона в правильном состоянии
app:wrongStateColor="$color:pomegranate"                // Устанавливаем цвет вида шаблона при ошибке
app:dotAnimationDuration="200"                          // Изменяем длительность анимации точек
app:pathEndAnimationDuration="100"                      // Изменяем длительность конечной анимации пути
JAVA

Вы также можете изменить свойства View программным способом, чтобы получить больше контроля над ним.

mPatternLockView.setViewMode(PatternLockView.PatternViewMode.CORRECT);  // Устанавливаем текущий режим просмотра
mPatternLockView.setInStealthMode(true);    // Переводим шаблон в скрытый режим (рисование шаблона скрыто)
mPatternLockView.setTactileFeedbackEnabled(true);   // Включает вибрационную обратную связь при рисовании шаблона
mPatternLockView.setInputEnabled(false);    // Полностью отключает ввод от вида блокировки шаблона

mPatternLockView.setDotCount(3);
mPatternLockView.setDotNormalSize((int) ResourceUtils.getDimensionInPx(this,
        ResourceTable.Float_pattern_lock_dot_size));
mPatternLockView.setDotSelectedSize((int) ResourceUtils.getDimensionInPx(this,
        ResourceTable.Float_pattern_lock_dot_selected_size));
mPatternLockView.setPathWidth((int) ResourceUtils.getDimensionInPx(this,
        ResourceTable.Float_pattern_lock_path_width));
mPatternLockView.setAspectRatio(PatternLockView.AspectRatio.ASPECT_RATIO_HEIGHT_BIAS); 
mPatternLockView.setNormalStateColor(ResourceUtils.getColor(this, ResourceTable.Color_white));
mPatternLockView.setCorrectStateColor(ResourceUtils.getColor(this, ResourceTable.Color_primary));
mPatternLockView.setWrongStateColor(ResourceUtils.getColor(this, ResourceTable.Color_pomegranate));
mPatternLockView.setDotAnimationDuration(150);
mPatternLockView.setPathEndAnimationDuration(100);

Отсутствующие функции

  1. Библиотека сама по себе не поддерживает сохранение и восстановление состояния перед и после переключения экрана, это необходимо делать в реальном приложении самостоятельно.

Итерации версий

  • v1.0.0

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

  • Apache Licence
Copyright 2017 aritraroy

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 )

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

Введение

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

Обновления

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

Участники

все

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

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