чернила

Создавайте лучшие в своем классе приложения для работы с пером. Снизьте порог входа для разработчиков, чтобы обеспечить высокопроизводительный и красивый опыт рисования.
Последнее обновление Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
17 декабря 2025 г. 1.0.0 - - -

Объявление зависимостей

Чтобы добавить зависимость от Ink, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

Круто

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

Котлин

dependencies {


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

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Для этого артефакта отсутствуют примечания к выпуску.

Версия 1.0

Версия 1.0.0

17 декабря 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0 . Версия 1.0.0 содержит следующие коммиты .

Исправлены ошибки

  • Увеличить зависимость от graphics-core до версии 1.0.4 ( Ibfa18 )

Версия 1.0.0-rc01

3 декабря 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты .

Исправлены ошибки

  • Обновите версию зависимости. ( Iecd04 )

Версия 1.0.0-beta02

19 ноября 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-beta02 . Версия 1.0.0-beta02 содержит следующие коммиты .

Изменения в API

  • Экспериментальные пользовательские API для обработки форм с низкой задержкой, различные исправления ошибок ( Ib8d2f )

Исправлены ошибки

  • Улучшена точность вычислений с плавающей запятой при сериализации StrokeInputBatch , исправлено расхождение значений, возникающее из-за повторного кодирования и декодирования.
  • Более надежная очистка входных данных системы.
  • Исправлена ​​поддержка текстур кисти в компоненте InProgressStrokes

Версия 1.0.0-beta01

22 октября 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .

Исправлены ошибки

  • Исправлены ошибки в рамках подготовки к выпуску бета-версии 01 ( I9900e )
  • Уменьшите артефакты рендеринга в штрихах, возникающие из-за слишком большого количества смоделированных входных данных, расположенных слишком близко друг к другу.
  • Исправлена ​​редкая ошибка, приводящая к сбою при моделировании входных данных.

Версия 1.0.0-alpha07

8 октября 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .

Новые функции

  • Параметр SelfOverlap для highlighter StockBrushes и emojiHighlighter , заменяющий rendererFactory InProgressStrokesView
  • Улучшена реализация сглаживания входных данных, что устраняет шумы измерений устройства и обеспечивает более точное отражение ввода пользователя по сравнению с предыдущей реализацией сглаживания входных данных.
  • Улучшена согласованность с другими API Android/Jetpack для единиц измерения углов (градусы против радиан), преобразований (наклон против сдвига) и многого другого.

Изменения в API

  • Изменить API, связанный с углами, чтобы использовать градусы и включать единицы измерения в имена, четко указать единицы измерения в утилитах преобразования углов и поддерживать как градусы, так и радианы, изменить API StockBrushes , чтобы он принимал версию стандартной кисти в качестве параметра фабричной функции, и предоставить возможность управления поведением самоперекрытия для кистей-выделителей, переименовать MutableAffineTransform.populateFromTranslate в populateFromTranslation , удалить InProgressStrokesView.setRenderFactory/getRenderFactory . ( Id9eab , b/436656418 )
  • Переименовать shear в skew, уточнить документацию, удалить CanvasStrokeRenderer.strokeModifiedRegionOutsetPx , добавить InProgressStroke.changesWithTime ( Ia5e70 , b/436656418 )

Исправлены ошибки

  • Улучшить моделирование входных данных, чтобы штрихи более точно отражали входные данные. ( I93097 )

Версия 1.0.0-alpha06

13 августа 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .

Новые функции

  • Инструмент выделения текста с помощью эмодзи: выделяйте части документа любыми выбранными вами эмодзи, чтобы добавить изюминку и помочь в организации работы.
  • Дополнительные вспомогательные API для примитивных форм модуля геометрии
  • Улучшение совместимости и производительности устройства.

Изменения в API

  • Упрощенный API для InProgressStrokesView , API для завершения геометрии, подсветка эмодзи, удаление фабричных функций из MutableParallelogram в пользу методов populate, поддержка начального значения для рандомизированного поведения кисти. ( I38280 )

Исправлены ошибки

  • Исправлена ​​ошибка производительности и проблема с согласованностью цвета в сухом и влажном состоянии. ( Ifcd1d )

Версия 1.0.0-alpha05

18 июня 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .

Новые функции

  • Создайте модули взаимодействия для модулей создания контента, кистей и геометрии.

Изменения в API

  • Новые модули и API для обеспечения взаимодействия Compose, очистка API ( I0e464 )
  • Методы InProgressStroke.enqueueInputs/updateShape , возвращавшие kotlin.Result , удалены; клиентам следует использовать, например, enqueueInputsOrThrow или enqueueInputsOrIgnore . InProgressStroke.getNeedsUpdate переименован в isUpdateNeeded . InProgressStroke.populateOutlinePosition теперь возвращает свой выходной параметр, что позволяет использовать цепочку вызовов, в соответствии с другими методами в Ink. Интерфейс TextureBitmapStore перемещен из модуля рендеринга в модуль кистей. BoxAccumulator.populateFrom теперь принимает неизменяемый объект Box, допускающий значение null, вместо изменяемого BoxAccumulator ; чтобы было понятнее, что именно изменяется, вызывающим следует изменить boxAccumulator.add(other) на boxAccumulator.add(other.box) . BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor удалены; вместо них используйте setAndroidColor объекта Brush.Builder после его создания. ( Ia7155 )
  • Ранее экспериментальное свойство InProgressStrokesView.textureBitmapStore теперь является приватным. Однако для этого свойства по-прежнему существуют публичные методы доступа. ( I1d706 )

Исправлены ошибки

  • Улучшена производительность пользовательских кистей, содержащих множество частиц.

Версия 1.0.0-alpha04

9 апреля 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .

Новые функции

  • Вводит новые экспериментальные API для пользовательских объектов BrushFamily , позволяющие создавать новые кисти, такие как «Карандаш» и «Лазерная указка». API позволяет загружать кисти, определенные этим прототипом. ( I8809a )

Версия 1.0.0-alpha03

12 февраля 2025 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты .

Новые функции

  • Экономия места на диске и в сети: сериализация StrokeInputBatch , позволяющая сэкономить множество строк кода, при этом размер получаемых объектов составляет лишь малую долю от размера традиционно хранимых данных о штрихах. ( IE898d )
  • Выделение лассо: пунктирная кисть для рисования линии выделения и функция для преобразования линии выделения в PartitionedMesh для запросов к геометрии. ( Ia38a0 )

Версия 1.0.0-alpha02

11 декабря 2024 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .

Изменения в API

  • Различные исправления ошибок. ( I05dd8 )

Внешний вклад

  • Устаревшая BuildCompat.isAtLeastV . Вместо этого вызывающие функции должны проверять SDK_INT напрямую по значению 35. ( I294d1 )

Версия 1.0.0-alpha01

2 октября 2024 г.

Выпущена версия androidx.ink:ink-*:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты .

Новые функции

  • Модульная и настраиваемая библиотека, упрощающая создание, отображение и обработку красивых чернильных штрихов, созданных в вашем приложении.

Изменения в API

Новые модули, которые помогут разработчикам создавать многофункциональные интерфейсы для работы с рукописным вводом:

  • Создание макета: Используйте InProgressStrokesView для высокопроизводительной отрисовки штрихов с низкой задержкой в ​​реальном времени по мере поступления входных данных.
  • Рендеринг: Используйте CanvasStrokeRenderer и ViewStrokeRenderer для отрисовки готовых штрихов чернил в рамках пользовательского интерфейса приложения.
  • Штрихи: основные типы данных, используемые для рисования контуров.
  • Кисть: Настраиваемый параметр, определяющий внешний вид и поведение штрихов в ответ на действия пользователя.
  • Геометрия: геометрические операции, такие как пересечение и покрытие, для использования в таких инструментах, как выделение и удаление.