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

OSCHINA-MIRROR/chinasoft5_ohos-FreeDrawView

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

Проект 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 )

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

1
https://api.gitlife.ru/oschina-mirror/chinasoft5_ohos-FreeDrawView.git
git@api.gitlife.ru:oschina-mirror/chinasoft5_ohos-FreeDrawView.git
oschina-mirror
chinasoft5_ohos-FreeDrawView
chinasoft5_ohos-FreeDrawView
master