Interfejsy Brush API

Interfejsy Brush API udostępniają narzędzia do określania stylu wizualnego pociągnięć. Możesz tworzyć pędzle o różnych kolorach, rozmiarach i rodzajach, aby uzyskać różne efekty.

Tworzenie pędzla

Aby utworzyć pędzel, użyj metod towarzyszących Compose Brush z argumentami nazwanymi, takimi jak Brush.Companion.createWithComposeColor. Ta klasa umożliwia ustawienie tych właściwości:

  • family: styl pędzla, analogiczny do kroju lub czcionki w tekście. Dostępne wartości znajdziesz w sekcji StockBrushes.BrushFamily
  • color: kolor pędzla. Kolor możesz ustawić za pomocą ColorLong.
  • size: ogólna grubość pociągnięć pędzla.
  • epsilon: najmniejsza odległość, przy której dwa punkty powinny być uznawane za wizualnie odrębne na potrzeby geometrii generowania pociągnięć. Stosunek punktów epsilon i punktów pociągnięcia kontroluje, jak bardzo można powiększyć pociągnięcie bez artefaktów, kosztem pamięci. Dobrym punktem wyjścia dla jednostek skoku jest 1 piksel, a dla epsilona – 0,1. Wyższe wartości epsilona zużywają mniej pamięci, ale pozwalają na mniejsze powiększenie, zanim pojawią się artefakty w postaci trójkątów. Eksperymentuj, aby znaleźć odpowiednią wartość dla swojego przypadku użycia.
val brush = Brush.createWithComposeColor(
  family = StockBrushes.pressure(),
  colorIntArgb = Color.Black,
  size = 5F,
  epsilon = 0.1F
)

Modyfikowanie właściwości pędzla

Możesz utworzyć kopię istniejącego pędzla za pomocą metody copyWithComposeColor(), która umożliwia zmianę dowolnej właściwości pędzla.

val redBrush = Brush.createWithComposeColor(
  family = StockBrushes.pressurePen(),
  colorIntArgb = Color.RED,
  size = 5F,
  epsilon = 0.1F
)

val blueBrush = redBrush.copyWithComposeColor(color = Color.BLUE)

Pędzle niestandardowe

StockBrushes udostępnia wszechstronny zestaw popularnych pędzli, ale interfejs Ink API oferuje też zaawansowaną ścieżkę tworzenia zupełnie nowych zachowań pędzli, które pozwalają uzyskać unikalne efekty artystyczne lub odtworzyć konkretne istniejące pędzle w celu zapewnienia zgodności wstecznej.

Niestandardowy BrushFamily jest wczytywany z jego formatu serializowanego. Wymagany format to skompresowane za pomocą gzipa kodowanie binarne bufora protokołu BrushFamily. Dzięki temu możesz już teraz wczytywać i używać niestandardowych plików pędzli. Po deserializacji niestandardowy BrushFamily może być użyty do utworzenia nowego Brush o określonym kolorze i rozmiarze, tak jak w przypadku każdej z rodzin StockBrushes.