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

OSCHINA-MIRROR/chinasoft5_ohos-FreeDrawView

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

Проект FreeDrawView

Проект

  • Название проекта: «Пользовательская панель рисования».
  • Серия: адаптация сторонних компонентов openharmony.
  • Функция: рисование по жестам, получение нарисованного изображения.
  • Состояние переноса проекта: основная функция реализована.
  • Различия при вызове: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 Beta1.
  • Базовая версия: Release 1.1.2.

Демонстрация эффекта

Описание изображения

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

  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:FreeDrawView:1.0.1')
    ......  
 }

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

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

Использование библиотеки простое. Достаточно посмотреть примеры исходного кода. В файл макета добавьте элемент управления:

<com.rm.freedrawview.FreeDrawView
                ohos:id="$+id:free_draw_view"
                ohos:height="match_parent"
                ohos:width="match_parent"
                ohos:background_element="$color:white"
                app:paintAlpha="255"
                app:paintColor="@color/black"
                app:paintWidth="4vp"
                app:resizeBehaviour="crop"/>

Код Java:

public class AbilityDrawSlice extends AbilitySlice {
    FreeDrawView mSignatureView;

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_Ability_draw);
       ((AbilityDraw) getAbility()).setAbilityCall(this);
        mSignatureView = (FreeDrawView) findComponentById(ResourceTable.Id_free_draw_view);
        // Setup the View
        mSignatureView.setPaintColor(Color.BLACK);
        mSignatureView.setPaintWidthPx(12);
        mSignatureView.setPaintWidthDp(6);
        mSignatureView.setPaintAlpha(255);// from 0 to 255
        mSignatureView.setResizeBehaviour(ResizeBehaviour.CROP);// Must be one of ResizeBehaviour
                                                                // values;

        // This listener will be notified every time the path done and undone count changes
        mSignatureView.setPathRedoUndoCountChangeListener(new PathRedoUndoCountChangeListener() {
                                  @Override
                                  public void onUndoCountChanged(int undoCount) {
                                      // The undoCount is the number of the paths that can be undone
                                  }

                                  @Override
                                  public void onRedoCountChanged(int redoCount) {
                                      // The redoCount is the number of path removed that can be redrawn
                                  }
                              });
        // This listener will be notified every time a new path has been drawn
        mSignatureView.setOnPathDrawnListener(new PathDrawnListener() {
                    @Override
                    public void onNewPathDrawn() {
                        // The user has finished drawing a path
                    }

                    @Override
                    public void onPathStart() {
                        // The user has started drawing a path
                    }
                });

        // This will take a screenshot of the current drawn content of the view
        mSignatureView.getDrawScreenshot(new FreeDrawView.DrawCreatorListener() {
                                  @Override
                                  public void onDrawCreated(Bitmap draw) {
                                      // The draw Bitmap is the drawn content of the View
                                  }

                                  @Override
                                  public void onDrawCreationError() {
                                      // Something went wrong creating the bitmap, should never
                                      // happen unless the async task has been canceled
                                  }});
``` **Пользовательский класс для рисования**

@Override public void onSaveAbilityState(PacMap outState) { mFreeDrawView.onSaveAbilityState(outState); }

@Override public void onRestoreAbilityState(PacMap inState) { setBackgroundColor(mSideView, mFreeDrawView.getPaintColor()); mFreeDrawView.onRestoreAbilityState(inState); }


**Пользовательские свойства**  

| Атрибут XML | Метод Java | Описание | Значение по умолчанию |
|----------|----------|---------|---------------------|
| paintColor | setPaintColor(@ColorInt int checked) | Устанавливает цвет краски | Color.BLACK |
| paintWidth | setPaintWidthPx(@FloatRange(from = 0) float widthPx) | Устанавливает ширину краски в пикселях | 4dp |
| | setPaintWidthDp(float dp) | Устанавливает ширину краски в dp | 4dp |
| paintAlpha | setPaintAlpha(@IntRange(from = 0, to = 255) int alpha) | Устанавливает альфа-канал краски | 255 |
| resizeBehaviour | setResizeBehaviour(ResizeBehaviour newBehaviour) | Поведение представления при каждом изменении размера (например, при повороте) одно из [clear, fitXY, crop] | ResizeBehaviour.CROP |  

**Общие методы**  
* public void undoLast() — отменяет предыдущую операцию;  
* public void redoLast() — восстанавливает предыдущую отменённую операцию;  
* public void undoAll() — отменяет все операции;  
* public void redoAll() — восстанавливает все отменённые операции;  
* public void clearHistory() — очищает историю операций;  
* public void clearDraw() — удаляет все нарисованные элементы;  
* public void clearDrawAndHistory() — удаляет все нарисованные элементы и историю операций;  
* public int getPathCount(boolean includeCurrentlyDrawingPath) — возвращает количество нарисованных элементов;  
* setOnPathDrawnListener(PathDrawnListener listener) — устанавливает слушателя для события рисования элемента;  
* setPathRedoUndoCountChangeListener(PathRedoUndoCountChangeListener listener) — устанавливает слушателя для изменения количества операций отмены и повтора;  
* removePathDrawnListener() — удаляет слушателя события рисования элемента;  
* removePathRedoUndoCountChangeListener() — удаляет слушателя изменения количества операций отмены и повтора.  

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

#### Версии  
1.0.1, 1.0.0, 0.0.1-SNAPSHOT.  

#### Авторские права и лицензии  
Copyright 2017 Riccardo Moro.  
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)

все

Участники

все

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

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