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
  • Excellent Experiences
  • Build the best experiences for your best users.
  • Learn more
  • 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
  • Excellent Experiences
  • Security
  • Safeguard users against threats and ensure a secure Android experience.
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
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
Overview Tutorial Samples Docs Quick Guides
Android Developers
  • Essentials
    • More
  • Design & Plan
    • More
  • Develop
    • More
    • Overview
    • Tutorial
    • Samples
    • Docs
    • Quick Guides
  • Google Play
  • Community
  • Android Studio
  • Introduction
    • Documentation
    • Why Compose
    • Quick start
    • Compose Compiler Gradle Plugin
    • Thinking in Compose
    • Build adaptive apps
    • Bill of Materials
      • Using the Bill of Materials
      • BOM to library version mapping
  • UI architecture
    • Lifecycle
    • Side-effects
    • Phases
    • Managing state
      • Overview
      • Where to hoist state
      • Save UI state
    • Architecture
    • Architectural layering
    • CompositionLocal
    • Navigation
  • App layout
    • Overview
    • Layout basics
    • Modifiers
    • Constraints and modifier order
    • Custom modifiers
    • List of modifiers
    • Pager
    • Flow layouts
    • Custom layouts
    • Adaptive layouts
      • Overview
      • App orientation, aspect ratio, and resizability
      • Canonical layouts
      • Support different display sizes
      • Use window size classes
      • Support multi-window mode
      • Support desktop windowing
      • Support connected displays
      • Build adaptive navigation
      • Build a list-detail layout
      • Build a supporting pane layout
      • Adaptive do's and don'ts
      • Foldables
        • Learn about foldables
        • Make your app fold-aware
        • Support foldable display modes
    • Alignment lines
    • Intrinsic measurements
    • ConstraintLayout
  • Components
    • Overview
    • App bars
      • Overview
      • Navigate from top app bar
      • Create a dynamic top app bar
    • Badges
    • Bottom sheets
      • Overview
      • Partial bottom sheet
    • Button
      • Overview
      • Floating action button
      • Icon button
      • Segmented button
    • Card
    • Carousel
    • Checkbox
    • Chip
    • Date pickers
    • Dialog
    • Divider
    • Lists and grids
    • Menus
    • Navigation bar
    • Navigation drawer
    • Navigation rail
    • Progress indicators
    • Pull to refresh
    • Radio button
    • Resources
    • Scaffold
    • Search bar
    • Slider
    • Snackbar
    • Switch
    • Tabs
    • Time pickers
      • Overview
      • Time picker dialogs
    • Tooltip
  • Theming
    • Overview
    • Material Design 3
    • Migrate from Material 2 to Material 3
    • Material Design 2
    • Custom theming
    • Anatomy of a theme
    • Migrating XML themes to Compose
  • Text and typography
    • Overview
    • Display and style text
      • Display text from resource
      • Style text
      • Style paragraph
      • Configure text layout
    • Handle user input
      • Configure text fields
      • Migrate to state-based text fields
    • Enable user interactions
    • Work with fonts
    • Display emoji
    • Enable Autofill
  • Images and graphics
    • Overview
    • Images
      • Overview
      • Loading images
      • ImageBitmap vs ImageVector
      • Material icons
      • Customize an image
      • Custom painter
      • Optimizing performance
    • Graphics
      • Overview
      • Graphics Modifiers
      • Brush
      • Shapes
  • Animation
    • Overview
    • Choose an animation API
    • Quick guide
    • Animation modifiers and composables
    • Value-based animations
    • Animated vector images
    • Advanced animation example
    • Customize animations
    • Shared elements
      • Overview
      • Customize
      • Common use cases
      • With navigation
      • Additional samples
    • Test animations
    • Tools
    • Additional resources
  • Accessibility
    • Overview
    • API defaults
    • Semantics
    • Modify traversal order
    • Merging and clearing
    • Inspect and debug
    • Testing
  • Touch and input
    • Overview
    • Pointer input
      • Overview
      • Understand gestures
      • Tap and press
      • Scroll
      • Drag, swipe, and fling
      • Multi-touch gestures
    • Keyboard input
      • Handle keyboard actions
      • Keyboard Shortcuts Helper
    • Focus
      • Overview
      • Change focus traversal order
      • Change focus behavior
      • React to focus
    • User interactions
      • Handling interactions
      • Migrate to Indication and Ripple APIs
      • Drag and drop
      • Swipe to dismiss or update
    • Stylus input
      • Overview
      • Stylus input in text fields
      • Advanced stylus features
      • Note-taking apps
      • Add inking to your app with the Ink API
        • About the Ink API
        • Setup
        • Pick your module
        • Draw a stroke
        • Define your brushes
        • Create interactive tools with the Geometry APIs
        • State preservation and persistent storage
    • Copy and paste
    • Input compatibility on large screens
  • Performance
    • Overview
    • Phases
    • Baseline profiles
    • Stability
      • Overview
      • Diagnose stability issues
      • Fix stability issues
      • Strong skipping
    • Tools
    • Best practices
  • Style guidelines
    • Compose API guidelines
    • Kotlin for Compose
  • UI testing
    • Overview
    • Cheatsheet
    • Semantics
    • Testing APIs
    • Synchronize tests
    • Interoperability
    • Common patterns
    • Debug tests
  • Migrate to Compose
    • Overview
    • Migration strategy
    • Interoperability APIs
      • Overview
      • Using Compose in Views
      • Using Views in Compose
    • Common migration scenarios
      • Migrate RecyclerView to Compose
      • Migrate CoordinatorLayout to Compose
      • Migrate Jetpack Navigation to Navigation Compose
    • Other considerations
    • Adopt Compose for teams
    • Compose and other libraries
    • Compare Compose and View metrics
  • Tools
    • Overview
    • Design
      • Preview your UI
      • Preview and debug animations
    • Develop
      • Develop code iteratively
      • Editor actions
    • Debug
      • Overview
      • Trace app performance
  • System capabilities
    • Window insets
      • About window insets
      • Set up window insets
      • Use keyboard IME animations
      • Use Material 3 insets
      • Use insets in Views and Compose
      • About system bar protection
    • Cutouts
      • About cutouts
      • Test how your content renders with cutouts
    • Picture-in-picture
      • About PiP
      • Set up your app for PiP
      • Enter PiP at correct times
      • Add PiP through a button
      • Add remote actions to PiP
    • Predictive back
      • About predictive back
      • Set up predictive back
      • Access progress manually
      • Test predictive back
  • Create widgets
    • Overview
    • Glance setup
    • Create an app widget with Glance
    • Handle errors with Glance
    • Unit testing with Glance
    • Handle user interaction with Glance
    • Manage and update GlanceAppWidget
    • Build UI with Glance
    • Implement a Glance theme
    • Glance interoperability
    • Additional resources
  • 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 ↗️
  • Excellent Experiences
  • Learn more
  • 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
  • Excellent Experiences
  • Security
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
  • 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
  • Docs

Draw a stroke

Previous
arrow_back Pick your module
Next
Define your brushes arrow_forward

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-11-16 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
  • Русский
  • فارسی
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어