Interfejs Ink API jest modułowy, więc możesz używać tylko tego, czego potrzebujesz.
Pociągnięcia
Moduł Strokes stanowi podstawę biblioteki Ink, oferując podstawowy interfejs API i zawierając podstawowe typy danych do interakcji z biblioteką. Najważniejsze typy danych w tym module:
StrokeInputBatch
: reprezentuje serię danych wejściowych wskaźnika, obejmujących pozycję, sygnaturę czasową i opcjonalnie nacisk, pochylenie oraz orientację. Tych danych można używać –Stroke
lubInProgressStroke
klas i jest typem, który dostarcza dane wejściowe dla pisma odręcznego do biblioteki rozpoznawania.Stroke
: wartość stała ostatecznego ruchu o stałej geometrii. Obrys składa się zImmutableStrokeInputBatch
(punktów wejścia),Brush
(stylizacji) iPartitionedMesh
(kształtu geometrycznego). Ciągi można przechowywać, edytować i renderować w obrębie Twojej aplikacji.InProgressStroke
: Zmiennego odpowiednika funkcjiStroke
– zaprojektowane z myślą przyrostowa obsługa danych wejściowych i renderowanie w czasie rzeczywistym podczas rysowania proces tworzenia konta. Chociaż często jest używany pośrednio za pomocąInProgressStrokesView
,InProgressStroke
można go wykorzystywać bezpośrednio do zaawansowanej personalizacji.
Geometria
Moduł Geometria udostępnia pakiet podstawowych elementów geometrycznych dla zarówno podstawowych, jak i złożonych kształtów wraz z operacjami wykrywania skrzyżowań i przekształceń. Te podstawowe elementy płynnie integrują się z metodami Ink, pozwalając takie jak gumki z pełnym kreską i narzędzia do zaznaczania.
Zajęcia takie jak Box
i
Vec
głównie ułatwiają
operacje geometryczne,
PartitionedMesh
może
a także dane związane z renderowaniem.
Pędzel
Moduł Pędzel
działa jako deklaratywna konfiguracja tworzenia i renderowania kreski,
działają podobnie do czcionki tekstu. O
Brush
obiekt ma
tych właściwości:
- Kolor: może być jednolitym kolorem lub podstawą dla efektów i tekstur nałożonych na siebie.
- Rozmiar: może być stały lub służyć jako podstawa do dynamicznych dostosowań rozmiaru.
- Rodzina: podobnie jak w przypadku czcionek tekstowych, rodzina określa ogólny styl obrysu.
- Epsilon: określa poziom szczegółowości geometrii wektorowej obrysu, reprezentując najmniejszą jednostkę wizualnej różnicy.
Właściwość epsilon
odgrywa kluczową rolę w określaniu dokładności systemu współrzędnych. Więcej wskazówek
znajdziesz w sekcji Interfejsy Brush API, aby dowiedzieć się,
aby wybrać odpowiednią wartość ypsilon.
BrushFamily
pełni funkcję
wydajną konfigurację do tworzenia ekspresyjnych pociągnięć bez zagłębiania się w
ze złożoną geometrią czy kodem renderowania. Biblioteka zawiera zestaw wstępnie zdefiniowanych
StockBrushes
, w tym
pióro, zakreślacz i marker z czułością na nacisk.
Tworzenie
Authoring
pozwala programistom rejestrować dotykowe dane wejściowe użytkownika i renderować je jako
w czasie rzeczywistym i z małym opóźnieniem. Jest to możliwe dzięki
InProgressStrokesView
zajęcia,
który przetwarza zdarzenia ruchu i wizualizuje pociągnięcia w miarę ich rysowania.
Po zakończeniu kreski moduł powiadamia aplikację kliencką za pomocą
onStrokesFinished()
wywołanie zwrotne
InProgressStrokesFinishedListener
Wywołanie zwrotne umożliwia aplikacji pobranie
i zakończenia danych kreski do renderowania lub zapisywania.
Renderowanie
Moduł renderowania upraszcza proces rysowania pociągnięcia atramentu na urządzeniu z Androidem Canvas
. Moduł ten zapewnia CanvasStrokeRenderer
w przypadku kompozycji oraz ViewStrokeRenderer
w przypadku układów opartych na widoku. Oba te tryby optymalizują wydajność renderowania i zapewniają wysoką jakość wizualizacji, w tym wygładzanie krawędzi.
Aby renderować ścieżki na płótnie, pobierz instancję CanvasStrokeRenderer
za pomocą metody create()
. Następnie użyj metody draw()
, aby renderować na płótnie gotowe lub w trakcie tworzenia pociągnięcia.
Obszar roboczy można przekształcać (przesuwać, powiększać lub obracać) w ramach rysowania
aby kreska wygląda jak najlepiej,
przekształcenie zastosowane do obszaru roboczego musi również zostać przekazane do
CanvasStrokeRenderer#draw()
Aby uniknąć konieczności śledzenia ich oddzielnie, użyj funkcji
ViewStrokeRenderer
.