Ink API는 모듈화되므로 필요한 만큼만 사용할 수 있습니다.
획
획 모듈은 잉크 라이브러리의 기반 역할을 하며 상호작용하기 위한 핵심 데이터 유형을 포함하는 기본 API 인터페이스입니다. 있습니다. 이 모듈의 주요 데이터 유형은 다음과 같습니다.
StrokeInputBatch
: 위치, 타임스탬프, 선택적으로 압력, 기울기, 방향을 포함하는 일련의 포인터 입력을 나타냅니다. 이 데이터는Stroke
또는InProgressStroke
클래스와 함께 활용할 수 있으며 필기 인식 라이브러리의 입력을 제공하는 유형입니다.Stroke
: 변경 불가 고정된 도형으로 완성된 스트로크의 표현입니다. 획은 -ImmutableStrokeInputBatch
(입력 포인트),Brush
(스타일 지정),PartitionedMesh
(기하학적 모양) 스트로크는 실행할 수 있습니다InProgressStroke
: 그리기 프로세스 중에 증분 입력 처리 및 실시간 렌더링을 위해 설계된Stroke
의 변경 가능한 대응 항목입니다. 종종 다음을 통해 간접적으로 사용되기도 하지만InProgressStrokesView
,InProgressStroke
고급 맞춤설정에 직접 활용할 수 있습니다.
도형
Geometry 모듈은 교차 감지 및 변환 작업과 함께 기본 도형과 복잡한 도형 모두에 사용할 수 있는 도형 프리미티브 모음을 제공합니다. 이러한 프리미티브는 잉크 획과 원활하게 통합되어 전체 획 지우개 및 마키 선택 도구와 같은 기능을 지원합니다.
Box
및 Vec
와 같은 클래스는 주로 기하학적 작업을 용이하게 하지만 PartitionedMesh
에는 렌더링 관련 데이터도 포함될 수 있습니다.
브러시
Brush 모듈은 획 생성 및 렌더링을 위한 선언적 구성으로 작동하며 텍스트 글꼴과 유사하게 작동합니다. 가
Brush
객체에는
다음 속성이 포함됩니다.
- 색상: 단색이거나 계층화된 효과 및 텍스처의 기반이 될 수 있습니다.
- 크기: 고정하거나 동적 크기 조정의 기준으로 사용할 수 있습니다.
- Family: 텍스트 서체와 마찬가지로, Family는 획의 전반적인 스타일을 정의합니다.
- Epsilon: 획의 벡터 도형에서 세부 수준을 제어하며 시각적 구분의 가장 작은 단위를 나타냅니다.
epsilon
속성은
좌표계의 정밀도를 정의하는 데 중요한 역할을 합니다. 추가 안내
Brush API 섹션에서
적절한 엡실론 값을 선택합니다.
BrushFamily
는 다음과 같은 역할을 합니다.
획을 자세히 살펴보지 않고도 표현력이 좋은 획을 만들 수 있는
사용할 수 있습니다. 이 라이브러리는 압력 감지 펜, 형광펜, 마커를 비롯한 사전 정의된 StockBrushes
집합을 제공합니다.
작성
Authoring
모듈을 사용하면 개발자가 사용자 터치 입력을 캡처하여
화면에서 지연 시간이 짧은 스트로크를 실시간으로 이는
InProgressStrokesView
클래스
는 모션 이벤트를 처리하고 획이 그려질 때 스트로크를 시각화합니다.
획이 완료되면 모듈은
onStrokesFinished()
콜백
InProgressStrokesFinishedListener
콜백을 사용하면 애플리케이션이 렌더링 또는 저장을 위해 완료된 획 데이터를 검색할 수 있습니다.
렌더링
렌더링 모듈은 Android Canvas
에 잉크 획을 그리는 프로세스를 간소화합니다. 모듈
CanvasStrokeRenderer
를 제공합니다.
Compose 및
ViewStrokeRenderer
두 가지 모두 렌더링 성능을 최적화하고
고화질 이미지를
제공해야 합니다
캔버스에 획을 렌더링하려면 create()
메서드를 사용하여 CanvasStrokeRenderer
인스턴스를 가져옵니다. 그런 다음
draw()
메서드를 사용하여 완료된 스트로크나 진행 중인 획을 렌더링할 수 있습니다.
획을 캔버스에 적용하기 때문입니다.
캔버스는 획 그리기의 일부로 변환(화면 이동, 확대/축소 또는 회전)할 수 있지만 획이 화면에 가장 잘 그려지도록 하려면 캔버스에 적용된 변환도 CanvasStrokeRenderer#draw()
에 전달해야 합니다.
이를 별도로 추적하지 않아도 되도록 하려면 대신 ViewStrokeRenderer
를 사용하세요.