Skip to main content
Android Developers
Essentials
  • Build AI experiences
  • Build AI-powered Android apps with Gemini APIs and more.
  • Get started
  • Get started
  • Start by creating your first app. Go deeper with our training courses or explore app development on your own.
  • Hello world
  • Training courses
  • Tutorials
  • Compose for teams
  • Kotlin for Android
  • Monetization with Play ↗️
  • Extend by device
  • Build apps that give your users seamless experiences from phones to tablets, watches, headsets, and more.
  • Adaptive apps
  • Android XR
  • Wear OS
  • Android for Cars
  • Android TV
  • ChromeOS
  • Build by category
  • Learn to build for your use case by following Google's prescriptive and opinionated guidance.
  • Games
  • Camera & media
  • Social & messaging
  • Health & fitness
  • Productivity
  • Enterprise apps
  • Get the latest
  • Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback.
  • Latest updates
  • Experimental updates
  • Android Studio preview
  • Jetpack & Compose libraries
  • Wear OS releases
  • Privacy Sandbox ↗️
Design & Plan
  • UI Design
  • Design a beautiful user interface using Android best practices.
  • Design for Android
  • Mobile
  • Adaptive UI
  • Android XR
  • Widgets
  • Wear OS
  • Android TV
  • Architecture
  • Design robust, testable, and maintainable app logic and services.
  • Introduction
  • Libraries
  • Navigation
  • Modularization
  • Testing
  • Quality
  • Plan for app quality and align with Play store guidelines.
  • Overview
  • Core value
  • User experience
  • Accessibility
  • Technical quality
  • Security
  • Safeguard users against threats and ensure a secure Android experience.
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
  • Build for Billions
  • Create the best experience for entry-level devices
  • Overview
  • About new markets
  • Android (Go edition)
Develop
  • Gemini in Android Studio
  • Your AI development companion for Android development.
  • Learn more
  • Get Android Studio
  • Core areas
  • Get the samples and docs for the features you need.
  • Samples
  • User interfaces
  • Background work
  • Data and files
  • Connectivity
  • All core areas ⤵️
  • Tools and workflow
  • Use the IDE to write and build your app, or create your own pipeline.
  • Write and debug code
  • Build projects
  • Test your app
  • Performance
  • Command-line tools
  • Gradle plugin API
  • Device tech
  • Write code for form factors. Connect devices and share data.
  • Adaptive UI
  • Wear OS
  • Android XR
  • Android Health
  • Android for Cars
  • Android TV
  • All devices ⤵️
  • Libraries
  • Browse API reference documentation with all the details.
  • Android platform
  • Jetpack libraries
  • Compose libraries
  • Google Play services ↗️
  • Google Play SDK index ↗️
Google Play Community
/
  • English
  • Deutsch
  • Español
  • Español – América Latina
  • Français
  • Indonesia
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • فارسی
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어
Android Studio
  • Core areas
  • UI
  • Views
Android Developers
  • Essentials
    • More
  • Design & Plan
    • More
  • Develop
    • More
  • Google Play
  • Community
  • Android Studio
  • Develop your app's layout
    • About layouts
    • Create responsive/adaptive design with views
    • Canonical layouts
    • Use window size classes
    • Support multi-window mode
    • Build a responsive UI with ConstraintLayout
    • Build responsive navigation
    • Create dynamic lists with RecyclerView
    • Customize a dynamic list
    • Create a card-based layout
    • Create a two-pane layout
    • Create a linear layout
    • Fill a layout with data
    • Create a relative layout
    • Activity embedding
    • Improve layout performance
      • About layout performance
      • Optimize layout hierarchies
      • Reuse layouts with <include>
      • Load views on demand
    • Create custom view components
      • About custom view components
      • How Android draws views
      • Create a custom view class
      • Implement a custom drawing
      • Make a custom view interactive
      • Optimize a custom view
    • Work with window insets and cutouts
      • Lay out your app within windows insets
      • Display content edge-to-edge
      • Apply rounded corners
      • Hide system bars for immersive mode
      • Support display cutouts
      • Control and animate the software keyboard
    • Add web-based content to your app
      • Using web content in your app
      • Embed web content into your app
      • In-app browsing using embedded web
      • Overview of Android Custom Tabs
      • Overview of Trusted Web Activities
      • Guide for Trusted Web Activities
      • Develop web apps in WebView
      • Manage WebView objects
      • Load local content
      • Darken web content
      • Support different screens in web apps
      • Debug web apps
      • Implement best practices
      • User privacy in WebView crash reporting
      • Beta program
      • Executing JavaScript and WebAssembly
  • Apply themes
    • About themes
    • Use the device colors (Dynamic Color)
    • Select colors with the palette library
    • Use Material Design as a guideline
    • Implement dark theme
    • Create shadows and clip views
  • Add components
    • Add core components
      • Floating action buttons (FABs)
      • Buttons
      • Check boxes
      • Radio buttons
      • Toggle buttons
      • Pickers
      • Tooltips
      • Dialogs
      • Menus
    • Add the app bar component
      • About app bars
      • Set up the app bar
      • Add and handle actions
      • Add an up action
      • Use action views and action providers
    • Add the settings component
      • About settings
      • Organize your settings
      • Customize your settings
      • Use saved values
      • Create a hierarchy in code
      • Handle other device sizes
      • Implement preference best practices
    • Integrate the Android search component
      • Search options
      • Create a search UI
      • Add search results from recent queries
      • Add custom search results
      • Provide a search configuration
      • Use AppSearch
      • Add search functionality
        • About search functionality
        • Set up the search UI
        • Storing and searching for data
        • Remain backward compatible with Search
  • Work with text and emoji
    • Autosize text views
    • Download fonts on the fly
    • Add a font as an XML resource
    • Add emoji support
      • Add support for modern emoji
      • Keep up to date with emoji
      • Use the Emoji Picker
    • Magnify text
    • Use spans to style text
  • Display graphics and videos
    • Static images
      • About static images
      • Vector images
      • Bitmaps
      • Reduce image sizes
      • Fix custom-drawing issues
    • Add media playback controls
    • Add videos using picture-in-picture (PiP)
    • Work with advanced images and graphics
      • Draw with AGSL shaders
        • About AGSL shaders
        • About AGSL versus GLSL
        • Use AGSL in your app
        • AGSL quick reference
      • Use OpenGL ES for graphics
        • Display graphics with Open GL ES
        • Learn how to use Open GL ES with graphics
          • About Open GL
          • Build an Open GL ES environment
          • Define shapes
          • Draw shapes
          • Apply projection and camera views
          • Add motion
          • Respond to touch events
          • Create APKs for different GL textures
      • Renderscript
        • About Renderscript
        • Advanced RenderScript
        • Migrate from RenderScript
          • Overview
          • Migrate scripts to OpenGL ES 3.1
          • Migrate scripts to Vulkan
        • Runtime API reference
          • About Runtime API
          • Numerical types
          • Object types
          • Conversion functions
          • Mathematical constants and functions
          • Vector math functions
          • Matrix functions
          • Quaternion functions
          • Atomic update functions
          • Time functions and types
          • Allocation data access functions
          • Object characteristics functions
          • Kernel invocation functions and types
          • Input/output functions
          • Debugging functions
          • Graphics functions and types
          • Index
  • Work with animations and transitions
    • In this guide
    • About animations in Android
    • About property animations
    • Animate drawable graphics
    • Animate views
      • Generate images between keyframes in an animation
      • Show or hide a view
      • Move a view using animation
      • Move a view using fling animation
      • Enlarge a view using zoom animation
    • Animate movement using spring physics
    • Auto-animate layout updates
    • Animate layout changes using a transition
    • Create a custom transition animation
    • Start an activity using an animation
    • MotionLayout
      • Manage motion and widget animation
      • Add a carousel
      • MotionLayout examples
    • Slide between fragments
      • Use ViewPager2 to slide between fragments
      • Use ViewPager to slide between fragments
      • Migrate from ViewPager to ViewPager2
    • Optimize frame rate with adaptive refresh rate
    • Use additional animation resources
  • Add support for touch and input
    • In this guide
    • About input events
    • Use touch gestures
      • About gestures
      • Detect common gestures
      • Track touch and pointer movements
      • Handle scroll gestures
      • Add support for navigation gestures
      • Detect multi-touch gestures
      • Add support for drag and scale
      • Manage touch events in a ViewGroup
      • Add support for swipe-to-refresh
        • About swipe-to-refresh
        • Add swipe-to-refresh to your app
        • Respond to a refresh request
    • Handle keyboard input
      • About keyboards
      • Specify the input method type
      • Handle input method visibility
      • Support keyboard navigation
      • Handle keyboard actions
    • Handle stylus input
      • About stylus
      • Stylus input in text fields
      • Custom text editors
      • Advanced stylus features
      • Note-taking apps
      • Ink API
        • About the Ink API
        • Modules
        • Setup
        • Draw a stroke
        • Brush APIs
        • Geometry APIs
        • State preservation and persistent storage
    • Use copy and paste across apps
    • Enable drag and drop
      • Overview
      • Key Concepts
      • DropHelper for simplified drag and drop
      • Implement drag and drop with views
      • Drag and drop in multi-window mode
    • Accept rich content from any source
    • Implement tactile feedback (haptics)
      • About haptics
      • Haptic design principles
      • Add haptic feedback to events
      • Vibration actuators primer
      • Create custom haptic effects
      • Haptics API reference
    • Add support for game controllers
      • About game controllers
      • Handle controller actions
      • Add support across Android versions
      • Add support for multiple controllers
      • Additional controller features
    • Work with input method editors (IMEs)
      • Create an input method
      • Add image keyboard support
    • Implement a spelling checker
    • Provide input compatibility on large screens
  • Add notifications to your app
    • About notifications
    • Request permission
    • Create and manage notification channels
    • Create a notification
      • Basic notifications
      • Expandable notifications
      • Call style notifications
      • Time-sensitive notifications
      • Custom notifications
    • Create a notification group
    • Start an activity from a notification
    • Add conversations
      • About conversations
      • Use bubbles for conversations
    • Modify a badge
    • Show pop-up messages
      • About pop-ups
      • Build and display a pop-up message
      • Add an action to a message
  • Customize app launch
    • Use adaptive launcher icons
    • Add a splash screen
      • Add a splash screen to a new app
      • Migrate an existing splash screen to the new API
    • Add app shortcuts
      • About shortcuts
      • Create shortcuts
      • Add capabilities to shortcuts
      • Manage shortcuts
      • Implement best practices for shortcuts
  • Add app content to the home screen or launcher
    • Create custom Quick Settings tiles
    • Create a QR Code Payment Quick Settings tile
    • Create app widgets
      • About app widgets
      • Create a simple widget
      • Enhance your widget
      • Create an advanced widget
      • Use widget collections
      • Size your widget
      • Enable widget configuration
      • Widget discoverability
      • Build a widget host
    • Integrate content with home channels ⍈
    • Control external devices
  • Create backward-compatible UIs
    • About backward-compatible UIs
    • Abstract newer APIs
    • Proxy to newer APIs
    • Create an implementation with older APIs
    • Use the version-aware component
  • Build AI experiences
  • Get started
  • Get started
  • Hello world
  • Training courses
  • Tutorials
  • Compose for teams
  • Kotlin for Android
  • Monetization with Play ↗️
  • Extend by device
  • Adaptive apps
  • Android XR
  • Wear OS
  • Android for Cars
  • Android TV
  • ChromeOS
  • Build by category
  • Games
  • Camera & media
  • Social & messaging
  • Health & fitness
  • Productivity
  • Enterprise apps
  • Get the latest
  • Latest updates
  • Experimental updates
  • Android Studio preview
  • Jetpack & Compose libraries
  • Wear OS releases
  • Privacy Sandbox ↗️
  • UI Design
  • Design for Android
  • Mobile
  • Adaptive UI
  • Android XR
  • Widgets
  • Wear OS
  • Android TV
  • Architecture
  • Introduction
  • Libraries
  • Navigation
  • Modularization
  • Testing
  • Quality
  • Overview
  • Core value
  • User experience
  • Accessibility
  • Technical quality
  • Security
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
  • Build for Billions
  • Overview
  • About new markets
  • Android (Go edition)
  • Gemini in Android Studio
  • Learn more
  • Get Android Studio
  • Core areas
  • Samples
  • User interfaces
  • Background work
  • Data and files
  • Connectivity
  • All core areas ⤵️
  • Tools and workflow
  • Write and debug code
  • Build projects
  • Test your app
  • Performance
  • Command-line tools
  • Gradle plugin API
  • Device tech
  • Adaptive UI
  • Wear OS
  • Android XR
  • Android Health
  • Android for Cars
  • Android TV
  • All devices ⤵️
  • Libraries
  • Android platform
  • Jetpack libraries
  • Compose libraries
  • Google Play services ↗️
  • Google Play SDK index ↗️
  • Android Developers
  • Develop
  • Core areas
  • UI
  • Views

Add inking to your app with the Ink API

The Ink API provides a straightforward approach to incorporating inking features into your Android applications, eliminating the complexities of graphics and geometry management.

The API includes the Jetpack Graphics Library for low latency for a unified implementation that ensures the smoothest and most responsive inking experience possible on Android.

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2024-10-08 UTC.

  • WeChat WeChat
    Follow Android Developers on WeChat
  • X X
    Follow @AndroidDev on X
  • YouTube YouTube
    Check out Android Developers on YouTube
  • More Android

    • Android
    • Android for Enterprise
    • Security
    • Source
    • News
    • Blog
    • Podcasts
  • Discover

    • Gaming
    • Machine Learning
    • Health & Fitness
    • Camera & Media
    • Privacy
    • 5G
  • Android Devices

    • Large screens
    • Wear OS
    • ChromeOS devices
    • Android for cars
    • Android TV
  • Releases

    • Android 15
    • Android 14
    • Android 13
    • Android 12
    • Android 11
    • Android 10
    • Pie
  • Documentation and Downloads

    • Android Studio guide
    • Developers guides
    • API reference
    • Download Studio
    • Android NDK
  • Support

    • Report platform bug
    • Report documentation bug
    • Google Play support
    • Join research studies
Google Developers
  • Android
  • Chrome
  • Firebase
  • Google Cloud Platform
  • All products
  • Privacy
  • License
  • Brand guidelines
  • ICP证合字B2-20070004号
  • Manage cookies
  • Get news and tips by email Subscribe
  • English
  • Deutsch
  • Español
  • Español – América Latina
  • Français
  • Indonesia
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • فارسی
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어