atrament

  
Inspiruj najlepsze aplikacje do obsługi rysika. Zmniejszanie barier dla deweloperów w zakresie tworzenia wydajnych i estetycznych funkcji pisania odręcznego. Obsługuje pisanie odręczne na Androidzie i po stronie serwera JVM (obecnie obsługiwane w systemie Linux na platformie x86_64).
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
9 września 2026 r. 1.0.0 - - 1.1.0-alpha08

Deklarowanie zależności

Aby dodać zależność od biblioteki Ink, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Dynamiczny

dependencies {
  
    implementation "androidx.ink:ink-authoring:1.1.0-alpha04"
    implementation "androidx.ink:ink-authoring-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-nativeloader:1.1.0-alpha04"
    implementation "androidx.ink:ink-rendering:1.1.0-alpha04"
    implementation "androidx.ink:ink-storage:1.1.0-alpha04"
    implementation "androidx.ink:ink-strokes:1.1.0-alpha04"
    
}

Kotlin

dependencies {


    implementation("androidx.ink:ink-authoring:1.1.0-alpha04")
    implementation("androidx.ink:ink-authoring-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-nativeloader:1.1.0-alpha04")
    implementation("androidx.ink:ink-rendering:1.1.0-alpha04")
    implementation("androidx.ink:ink-storage:1.1.0-alpha04")
    implementation("androidx.ink:ink-strokes:1.1.0-alpha04")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Ink w wersji 1.1

Wersja 1.1.0-alpha08

9 września 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha08 Wersja 1.1.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaj obsługę renderowania w KMP iOS za pomocą MetalRenderer w ramach adnotacji ExperimentalInkCrossPlatformRenderingApi na podstawie wspólnych interfejsów API KMP dla głównej funkcjonalności.
  • Zmień nazwę Target.TEXTURE_ANIMATION_PROGRESS_OFFSET na Target.PAINT_ANIMATION_PROGRESS_OFFSET. (I8809f)
  • Dodaj przeciążenia ImmutableAffineTransform.translate(float x, float, y) i MutableAffineTransform populateFromTranslation(float x, float y) (I8809f)
  • Zmiana nazwy usługi DampingNodedampingSource na dampOver (Id3178)
  • Zmiana nazwy usługi DampingNodedampingGap na strength (I69432)
  • Podczas definiowania EasingFunction.CubicBezier używaj typu Vec zamiast Floats (I69432)
  • Dodanie adnotacji WorkerThread do funkcji gumki do edycji siatki Stroke.subtractStroke.split (I69432)

Poprawki błędów

  • Spraw, aby próbki Brush były zgodne z KMP (I77125)

Wersja 1.1.0-alpha07

12 sierpnia 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha07 Wersja 1.1.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Naprawiono regresję wydajności wpływającą na pędzle z gęstymi cząstkami, zaktualizowano stałe Brush.Version na podstawie opinii o interfejsie API (I87f0f).

Wersja 1.1.0-alpha06

29 lipca 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha06 Wersja 1.1.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano metody calculateMinimumRequiredVersion do interfejsu API dla podtypów BrushFamily. (I338c9)
  • Udostępnianie pól komponentu AffineTransform (Ic2ec3)
  • Naprawiono wyciek pamięci w InProgressStrokesView, poprawiono artefakty wizualne eksperymentalnej częściowej gumki, ulepszono reprezentację protobuf dla niestandardowych warstw tekstury pędzla (I6ff86).
  • Dodanie konstruktora inicjującego dla MutableAffineTransform (aby pasował do ImmutableAffineTransform) (I96ec7)
  • Dodaj InProgressStroke.clear (Ie0032)
  • Dodawanie metod toImmutable do struktur danych z podklasami modyfikowalnymi i niemodyfikowalnymi (I53835)
  • Migracja KMP (Icbf38, b/521850119, b/534309122)

Poprawki błędów

  • Dodanie dalszej obsługi wersji pędzli i animacji tekstur. (Iea9ba)

Wersja 1.1.0-alpha05

15 lipca 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha05 Wersja 1.1.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Wersja eksperymentalna nowego typu gumki, znanego jako „częściowe pociągnięcie”, „edycja siatki” lub „gumka pikselowa”, która edytuje geometrię pociągnięcia i dzieli pociągnięcia, zamiast usuwać całe pociągnięcia lub maskować je kolorem tła. Znane problemy to brak wygładzania krawędzi cięcia i brak interfejsów API serializacji do zapisywania wyników wymazywania PartitionedMesh. Oba te problemy zostaną rozwiązane w przyszłych wersjach.
  • Dodanie brakującej adnotacji Throws do StrokeInputBatchSerialization.decode, co wymaga aktualizacji ze strony użytkowników Javy korzystających z tej metody. (I83473, b/522256938)

Poprawki błędów

  • Naprawianie awarii natywnej spowodowanej problemem z precyzją numeryczną (I2e1f0, 6618e69, b/523190724)
  • Odrzucanie zdegenerowanych ekstruzji w BrushTipExtruder (469b629)
  • Rozwiąż problem RejectedExecutionException w sekcji InProgressStrokesView (b/526696762)

Wersja 1.1.0-alpha04

17 czerwca 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Rozwiązaliśmy problemy z precyzją liczb zmiennoprzecinkowych, które powodowały artefakty wizualne w ukończonych pociągnięciach i występowały na niektórych urządzeniach po aktualizacji systemu operacyjnego.

  • Dodaj interfejs API KMP-common do modułu pamięci (zamiast Java InputStream/OutputStream będzie używany format ByteArray).

  • Dodaj właściwość BrushBehavior.developerComment, która będzie zawierać metadane wyjaśniające projekt niestandardowej rodziny pędzli. Ma to na celu obsługę interfejsu projektanta pędzli.

  • Naprawiono błąd w sprawdzaniu spójności wątków w CanvasInProgressStrokesRenderHelperV33.

  • Naprawiliśmy kilka błędów w obsłudze pól opcjonalnych MotionEvent (np. pochylenia, nacisku).

  • Ulepsz dokumentację interfejsu API pędzla niestandardowego.

  • Dodaj nowe typy BrushPaint.ColorFunction.

Wersja 1.1.0-alpha03

19 maja 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Udostępnienie publicznie interfejsu API do programowego dostosowywania pędzla do pisania odręcznego (I8e2e1)
  • Podziel BrushPaint.TextureLayer na bardziej szczegółowe podklasy (I8848a).

Wersja 1.1.0-alpha02

22 kwietnia 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Udostępnij przeciążenie funkcji BrushFamily.decode, które określa maksymalną zgodność wersji (I1c7bc)
  • Wycofanie interfejsu API serializacji BrushFamily z wersji eksperymentalnej (Idd16e)

Poprawki błędów

  • Naprawianie migotania podczas korzystania z InProgressStrokesView.maskPath na niektórych urządzeniach (I1c7bc, b/496920044)

Wersja 1.1.0-alpha01

11 marca 2026 r.

Publikacja androidx.ink:ink-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Różne drobne poprawki błędów

Zmiany w interfejsie API

  • Dodano InProgressShape.isCanceled, rozwiązano problemy z jednoczesnym edytowaniem w module tworzenia. (Ibfd32, b/474385518, b/470695777)
  • Udostępnianie w Javie wersji funkcji CanvasStrokeRenderer.createInProgressStroke.updateShape bez argumentów (Id80a1, b/457715938)

Poprawki błędów

  • Naprawiliśmy błąd powodujący awarie w InProgressStrokesView po odłączeniu i ponownym podłączeniu do okna w przypadku interfejsu API w wersjach 29–32. Umożliwiliśmy operacjom wektorowym przyjmowanie tego samego typu MutableVec jako danych wejściowych i wyjściowych. Połączyliśmy konfiguracje Proguard w jeden plik. (Ia4da0)
  • Zwiększenie zależności od graphics-core do wersji 1.0.4 (Ibfa18)

Wersja 1.0

Wersja 1.0.0

17 grudnia 2025 r.

Publikacja androidx.ink:ink-*:1.0.0 Wersja 1.0.0 zawiera te zmiany.

Poprawki błędów

  • Zwiększ zależność od graphics-core do wersji 1.0.4 (Ibfa18)

Wersja 1.0.0-rc01

3 grudnia 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.

Poprawki błędów

  • Zaktualizuj wersję zależności. (Iecd04)

Wersja 1.0.0-beta02

19 listopada 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zmiany.

Zmiany w interfejsie API

  • Eksperymentalne niestandardowe interfejsy API kształtu o niskim czasie oczekiwania, różne poprawki błędów (Ib8d2f)

Poprawki błędów

  • Poprawienie precyzji liczb zmiennoprzecinkowych podczas StrokeInputBatchserializacji, co eliminuje odchylenia wartości wynikające z wielokrotnego kodowania i dekodowania.
  • Bardziej niezawodne oczyszczanie danych wejściowych systemu.
  • Naprawianie obsługi tekstury pędzla w funkcji kompozycyjnej InProgressStrokes

Wersja 1.0.0-beta01

22 października 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

Poprawki błędów

  • Poprawki błędów w przygotowaniu do wersji beta01 (I9900e)
  • Ograniczanie artefaktów renderowania w przypadku pociągnięć spowodowanych zbyt dużą liczbą modelowanych danych wejściowych znajdujących się zbyt blisko siebie.
  • Naprawiliśmy rzadki błąd w modelowaniu danych wejściowych.

Wersja 1.0.0-alpha07

8 października 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zmiany.

Nowe funkcje

  • Parametr SelfOverlap dla StockBrushes highlighteremojiHighlighter, który zastępuje InProgressStrokesView rendererFactory
  • Ulepszona implementacja wygładzania danych wejściowych, która eliminuje szumy pomiarowe urządzenia, ale dokładniej odzwierciedla dane wejściowe użytkownika niż poprzednia implementacja wygładzania danych wejściowych
  • Większa spójność z innymi interfejsami API Androida i Jetpacka w przypadku jednostek kątowych (stopnie a radiany), przekształceń (pochylenie a ścinanie) i innych elementów.

Zmiany w interfejsie API

  • Zmiana interfejsu API związanego z kątami, aby używać stopni i uwzględniać jednostki w nazwach, wyjaśnienie jednostek w narzędziach do konwersji kątów i obsługa zarówno stopni, jak i radianów, zmiana interfejsu StockBrushes API, aby przyjmował wersję pędzla jako parametr funkcji fabrycznej i udostępniał kontrolę zachowania nakładania się dla pędzli zakreślacza, zmiana nazwy MutableAffineTransform.populateFromTranslate na populateFromTranslation, usunięcie InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Zmień nazwę przekształcenia na pochylenie, doprecyzuj dokumentację, usuń CanvasStrokeRenderer.strokeModifiedRegionOutsetPx i dodaj InProgressStroke.changesWithTime (Ia5e70, b/436656418)

Poprawki błędów

  • Ulepsz modelowanie danych wejściowych, aby pociągnięcia dokładniej odzwierciedlały dane wejściowe. (I93097)

Wersja 1.0.0-alpha06

13 sierpnia 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • Pędzel do wyróżniania emotikonów: wyróżniaj części dokumentu wybranymi emotikonami, aby dodać zabawny akcent i zachować porządek.
  • Więcej interfejsów API pomocniczych dla kształtów podstawowych modułu geometrii
  • Poprawianie zgodności i wydajności urządzenia

Zmiany w interfejsie API

  • Uproszczony interfejs API dla InProgressStrokesView, interfejsy API geometrii wykończenia, wyróżnianie emoji, usuwanie funkcji fabrycznych z MutableParallelogram na rzecz metod wypełniania, obsługa wartości początkowej dla losowych zachowań pędzla. (I38280)

Poprawki błędów

  • Rozwiązanie problemu z wydajnością i spójnością kolorów na mokro i na sucho. (Ifcd1d)

Wersja 1.0.0-alpha05

18 czerwca 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zmiany.

Nowe funkcje

  • Tworzenie modułów interoperacyjności dla modułów tworzenia, pędzla i geometrii

Zmiany w interfejsie API

  • Nowe moduły i interfejsy API do współpracy z Compose, czyszczenie interfejsu API (I0e464)
  • InProgressStroke.enqueueInputs/updateShapeMetody, które zwracały wartość kotlin.Result, zostały usunięte.Klienci powinni zamiast nich używać np. metod enqueueInputsOrThrow lub enqueueInputsOrIgnore. Nazwa InProgressStroke.getNeedsUpdate została zmieniona na isUpdateNeeded. InProgressStroke.populateOutlinePosition zwraca teraz parametr wyjściowy, aby umożliwić łączenie wywołań, co jest zgodne z innymi metodami w Ink. Interfejs TextureBitmapStore został przeniesiony z modułu renderowania do modułu pędzla. BoxAccumulator.populateFrom przyjmuje teraz niemutowalny obiekt Box z wartością null zamiast mutowalnego obiektu BoxAccumulator. Aby było jaśniejsze, co jest mutowane, wywołujący powinni zmienić boxAccumulator.add(other) na boxAccumulator.add(other.box). BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor są usuwane. Zamiast nich używaj setAndroidColorBrush.Builder po utworzeniu. (Ia7155)
  • Właściwość eksperymentalna InProgressStrokesView.textureBitmapStore jest teraz prywatna. Ta właściwość nadal ma publiczne funkcje dostępu. (I1d706)

Poprawki błędów

  • Poprawiliśmy wydajność pędzli niestandardowych zawierających wiele cząsteczek.

Wersja 1.0.0-alpha04

9 kwietnia 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • Wprowadza nowe eksperymentalne interfejsy API dla niestandardowych BrushFamily obiektów, które umożliwiają korzystanie z nowych pędzli, takich jak ołówek i wskaźnik laserowy. Interfejs API umożliwia wczytywanie pędzli zdefiniowanych przez ten protokół. (I8809a)

Wersja 1.0.0-alpha03

12 lutego 2025 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.

Nowe funkcje

  • Oszczędność miejsca na dysku i w sieci: serializacja StrokeInputBatch, która pozwala zaoszczędzić wiele wierszy kodu, a powstałe obiekty zajmują niewielką część miejsca w porównaniu z tradycyjnie przechowywanymi pociągnięciami. (Ie898d)
  • Zaznaczanie lassem: pędzel z linią przerywaną do rysowania kreski zaznaczenia i funkcja zamieniająca kreskę zaznaczenia w PartitionedMesh na potrzeby zapytań dotyczących geometrii. (Ia38a0)

Wersja 1.0.0-alpha02

11 grudnia 2024 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Poprawki różnych błędów. (I05dd8)

Wkład zewnętrzny

  • Wycofaj: BuildCompat.isAtLeastV Zamiast tego wywołujący powinni bezpośrednio sprawdzać SDK_INT w porównaniu z 35. (I294d1)

Wersja 1.0.0-alpha01

2 października 2024 r.

Publikacja androidx.ink:ink-*:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Modułowa i konfigurowalna biblioteka, która ułatwia tworzenie, renderowanie i manipulowanie pięknymi pociągnięciami pióra utworzonymi w aplikacji.

Zmiany w interfejsie API

Nowe moduły, które pomagają deweloperom tworzyć zaawansowane funkcje pisania odręcznego:

  • Tworzenie: używaj InProgressStrokesView, aby renderować pociągnięcia w czasie rzeczywistym z krótkim czasem oczekiwania i wysoką wydajnością w miarę otrzymywania danych wejściowych.
  • Renderowanie: użyj symboli CanvasStrokeRendererViewStrokeRenderer, aby narysować gotowe pociągnięcia piórem jako część interfejsu aplikacji.
  • Pociągnięcia: podstawowe typy danych używane w funkcjach pisania odręcznego.
  • Pędzel: konfigurowalna specyfikacja wyglądu i działania pociągnięć w odpowiedzi na dane wejściowe użytkownika.
  • Geometria: operacje geometryczne, takie jak przecięcie i pokrycie, które umożliwiają korzystanie z narzędzi takich jak zaznaczanie i wymazywanie.