重写onMeasure():
为什么要重写onMeasure()?
我们通过MeasureSpec类来测量view,他是一个32位的int值,其中高2位为测量的模式,低30位为测量的大小,如果不重写onMeasure(),当在xml中使用wrap_content时,android会将控件铺满屏幕,所以重写onMeasure的目的就是给wrap_content一个默认大小。
MeasureSpec类的模式有三种,EXACTLY、AT_MOST、UNSPECIFIED,如果不重写onMeasure(),就只能使用EXACTLY模式,使用精确的值来控制控件的大小。