Pie Chart
This is the order that these commonly used view methods are run:
Constructor // choose your desired size
onMeasure // parent will determine if your desired size is acceptable
onSizeChanged
onLayout
onDraw // draw your view content at the size specified by the parent
See this and this and this for more information about the constructors.
Any time that you make a change to your view that affects the appearance but not the size, then call invalidate(). This will cause onDraw to be called again (but not all of those other previous methods).
Any time that you make a change to your view that would affect the size, then call requestLayout(). This will start the process of measuring and drawing all over again from onMeasure. This call is usually accompanied (preceded) by a call to invalidate().
See this helpful post for more information.