atrament

  
Inspiruj najlepsze aplikacje do rysowania piórem. Zmniejsz barierę wejścia dla deweloperów, aby mogli tworzyć piękne i wydajne aplikacje do rysowania. Obsługuje rysowanie na Androidzie i po stronie serwera w JVM (obecnie obsługiwane w systemie Linux w architekturze x86_64).
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
17 czerwca 2026 r. 1.0.0 - - 1.1.0-alpha04

Deklarowanie zależności

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

Dodaj zależności od 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 znajdziesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z istniejącymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy problem

Więcej informacji znajdziesz w dokumentacji narzędzia do śledzenia problemów Issue Tracker documentation.

Atrament w wersji 1.1

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ą reprezentacji zmiennoprzecinkowej, które powodowały artefakty wizualne w gotowych pociągnięciach, co miało wpływ na niektóre urządzenia po aktualizacji systemu operacyjnego.

  • Dodaliśmy interfejs KMP-common API dla modułu pamięci (przechodzenie do/z ByteArray zamiast Java InputStream/OutputStream).

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

  • Naprawiliśmy 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. nachylenie, nacisk).

  • Ulepszyliśmy dokumentację interfejsu API pędzli niestandardowych.

  • Dodaliśmy 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ępniliśmy interfejs API do programowego dostosowywania pędzli atramentowych (I8e2e1).
  • Podzieliliśmy 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ępniliśmy przeciążenie BrushFamily.decode, które określa maksymalną zgodność wersji (I1c7bc).
  • Przenieśliśmy interfejs API serializacji BrushFamily z wersji eksperymentalnej (Idd16e).

Poprawki błędów

  • Naprawiliśmy migotanie podczas używania 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

  • Dodaliśmy InProgressShape.isCanceled, naprawiliśmy problemy z współbieżnością w module tworzenia. (Ibfd32, b/474385518, b/470695777)
  • Udostępniliśmy w Javie wersję CanvasStrokeRenderer.create i InProgressStroke.updateShape bez argumentów (Id80a1, b/457715938)

Poprawki błędów

  • Naprawiliśmy błąd powodujący awarie w InProgressStrokesView po odłączeniu/ponownym podłączeniu do okna w przypadku interfejsu API 29–32, umożliwiliśmy operacjom wektorowym przyjmowanie tego samego MutableVec jako danych wejściowych i wyjściowych oraz scaliliśmy konfiguracje Proguard w jeden plik. (Ia4da0)
  • Zwiększyliśmy zależność 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ększyliśmy 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

  • Zaktualizowaliśmy 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 interfejsy API kształtów o niskim opóźnieniu, różne poprawki błędów (Ib8d2f).

Poprawki błędów

  • Ulepszyliśmy precyzję reprezentacji zmiennoprzecinkowej w serializacji StrokeInputBatch, co eliminuje dryfowanie wartości spowodowane powtarzającym się kodowaniem i dekodowaniem.
  • Bardziej niezawodne czyszczenie danych wejściowych systemu.
  • Naprawiliśmy obsługę tekstury pędzla w komponencie 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 przygotowujące do wydania wersji beta01 (I9900e).
  • Zmniejszyliśmy liczbę artefaktów renderowania w pociągnięciach spowodowanych zbyt dużą liczbą modelowanych danych wejściowych zbyt blisko siebie.
  • Naprawiliśmy rzadko występującą awarię 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 highlighter i emojiHighlighter, który zastępuje InProgressStrokesView rendererFactory.
  • Ulepszona implementacja wygładzania danych wejściowych pociągnięć, która eliminuje szumy pomiarowe urządzenia, ale dokładniej odzwierciedla dane wejściowe użytkownika niż poprzednia implementacja wygładzania danych wejściowych pociągnięć.
  • Lepsza spójność z innymi interfejsami API Androida i Jetpacka w przypadku jednostek kątowych (stopnie vs. radiany), przekształceń (pochylenie vs. ścinanie) i innych.

Zmiany w interfejsie API

  • Zmieniliśmy interfejs API związany z kątami, aby używać stopni i uwzględniać jednostkę w nazwach, wyjaśniliśmy jednostki w narzędziach do konwersji kątów i obsługiwaliśmy zarówno stopnie, jak i radiany, zmieniliśmy interfejs API StockBrushes, aby przyjmować wersję pędzla standardowego jako parametr funkcji fabrycznej, i udostępniliśmy kontrolę zachowania nakładania się w przypadku pędzli zakreślaczy, zmieniliśmy nazwę MutableAffineTransform.populateFromTranslate na populateFromTranslation oraz usunęliśmy InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Zmieniliśmy nazwę ścinania na pochylenie, wyjaśniliśmy niektóre fragmenty dokumentacji, usunęliśmy CanvasStrokeRenderer.strokeModifiedRegionOutsetPx i dodaliśmy InProgressStroke.changesWithTime (Ia5e70, b/436656418).

Poprawki błędów

  • Ulepszyliśmy 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 standardowy zakreślacza emoji: możesz wyróżniać części dokumentu za pomocą dowolnych emoji, aby dodać zabawny akcent i ułatwić organizację.
  • Więcej interfejsów API pomocniczych dla kształtów pierwotnych modułu geometrii.
  • Poprawiliśmy zgodność i wydajność urządzenia.

Zmiany w interfejsie API

  • Uprościliśmy interfejs API dla InProgressStrokesView, dokończyliśmy interfejsy API geometrii, zakreślacza emoji, usunęliśmy funkcje fabryczne z MutableParallelogram na rzecz metod wypełniania oraz dodaliśmy obsługę ziarna dla losowych zachowań pędzla. (I38280)

Poprawki błędów

  • Naprawiliśmy problem z wydajnością i spójnością kolorów mokrych i suchych. (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

  • Moduły interoperacyjności Compose dla modułów tworzenia, pędzla i geometrii.

Zmiany w interfejsie API

  • Nowe moduły i interfejsy API interoperacyjności Compose, czyszczenie interfejsu API (I0e464).
  • Usunęliśmy metody InProgressStroke.enqueueInputs/updateShape, które zwracały kotlin.Result.Klienci powinni zamiast nich używać np. enqueueInputsOrThrow lub enqueueInputsOrIgnore. Zmieniliśmy nazwę InProgressStroke.getNeedsUpdate na isUpdateNeeded. Metoda InProgressStroke.populateOutlinePosition zwraca teraz parametr wyjściowy, aby umożliwić łączenie wywołań, co jest zgodne z innymi metodami w atramencie. Przenieśliśmy interfejs TextureBitmapStore z modułu renderowania do modułu pędzla. BoxAccumulator.populateFrom przyjmuje teraz niezmienny obiekt Box z możliwością wartości null zamiast zmiennego obiektu BoxAccumulator, aby wyraźniej wskazywać, co jest zmieniane. Wywołujący powinni zmienić boxAccumulator.add(other) na boxAccumulator.add(other.box). Usunęliśmy metody BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor. Zamiast nich po utworzeniu użyj metody setAndroidColor klasy Brush.Builder. (Ia7155)
  • Właściwość InProgressStrokesView.textureBitmapStore, która wcześniej była eksperymentalna, jest teraz prywatna. Nadal istnieją publiczne metody dostępu do tej właściwości. (I1d706)

Poprawki błędów

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

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

  • Wprowadziliśmy nowe eksperymentalne interfejsy API dla niestandardowych obiektów BrushFamily, które umożliwiają tworzenie 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, oszczędność wielu wierszy kodu, a wynikowe obiekty stanowią niewielki ułamek rozmiaru tradycyjnie przechowywanych pociągnięć. (Ie898d)
  • Zaznaczanie lasso: pędzel z linią przerywaną do rysowania pociągnięcia zaznaczenia i funkcja przekształcania pociągnięcia zaznaczenia w PartitionedMesh na potrzeby zapytań geometrycznych. (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

  • Różne poprawki błędów. (I05dd8)

Wkład zewnętrzny

  • Wycofaliśmy BuildCompat.isAtLeastV. Wywołujący powinni zamiast tego bezpośrednio sprawdzać SDK_INT pod kątem 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

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

Zmiany w interfejsie API

Nowe moduły, które pomagają deweloperom tworzyć bogate aplikacje do rysowania:

  • Tworzenie: użyj InProgressStrokesView, aby renderować pociągnięcia w czasie rzeczywistym z dużą wydajnością i niskim opóźnieniem podczas odbierania danych wejściowych.
  • Renderowanie: użyj CanvasStrokeRenderer i ViewStrokeRenderer, aby rysować gotowe pociągnięcia atramentu jako część interfejsu aplikacji.
  • Pociągnięcia: podstawowe typy danych używane w funkcjach rysowania.
  • Pędzel: konfigurowalna specyfikacja wyglądu i zachowania pociągnięć w odpowiedzi na działania użytkownika.
  • Geometria: operacje geometryczne, takie jak przecięcie i pokrycie, które umożliwiają korzystanie z narzędzi takich jak zaznaczanie i usuwanie.