Building your own custom components can be a lot of work, but can also be extremely rewarding. Having complete control over the measurement, layout, and rendering cycle provides you with an amazing amount of power to virtually build any widget that you can imagine. Android also has some excellent defaults defined, allowing you to focus on how your widget should look and work, rather than getting stuck on the intricacies of the rendering pipeline.
The Drawable class is one of the most powerful graphics primitives Android has. It's difficult to call it a primitive due to how powerful they actually are. Wherever possible, use them instead of a Bitmap or Path, as they make future improvements much simpler, and easily integrate with the resources system.
Using the Handler class to animate a widget is also a very powerful and low-level mechanism. It's often a good...