最近在看自定义View的一些源码,发现有的项目中在onMeasure()中使用resolveSize(),这个方法是什么意思啊?为什么要这样用?
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// 为何要调用resolveSize()方法?
int width = resolveSize(DEFAULT_VIEW_SIZE, widthMeasureSpec);
int height = resolveSize(DEFAULT_VIEW_SIZE, heightMeasureSpec);
mViewSize = Math.min(width, height);
setMeasuredDimension(width, height);
}
这个方法的主要作用就是根据你提供的大小和模式,返回你想要的大小值,这个里面根据传入模式的不同来做相应的处理。