Sometimes the Android platform layouts and widgets are all you need. Sometimes you need more control over design and interaction. Sometimes you want to create your own reusable components. Sometimes you need some help with performance. Custom Views and ViewGroups are powerful tools that can provide these things, but with great power comes great complexity.
To help you get started, we will first build a simple custom View and then add layout, drawing, and interaction. Along the way will discuss when and when to go custom, when not to go custom, and talk good practices.
How the multi-step process by which Android draws views works
The different types of custom views and view groups
How to implement each phase of the draw process on your own in a custom view
How to implement a basic custom view group