requestLayout:当view本身已经确定不再适合现有的区域时,该View本身调用这个方法要求Parent View重新调用它的onMeasure onLayout方法来重新设定自己的位置,特别的当Layout parameter已经发生变化 时,并且他的值还没有应用到view上,特别适合调用该方法。
invalidate:view本身调用迫使view重画,是在ui线程中调用
postInvalidate:是在非ui线程中调用
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。