В чем разница между getWidth/Height() и getMeasuredWidth/Height() в Android SDK?

В документации Android говорится, что для вида существует два размера, измеренные размеры и размеры чертежа. Измеренный размер - это размер, вычисленный в передаче измерения (метод onMeasure), а размеры чертежа - это фактический размер на экране. В частности, в документации сказано, что:

Эти значения могут, но не обязаны, отличаться от измеренных ширины и высоты.

Итак, мой вопрос: что может заставить размеры чертежа отличаться от измеренных размеров? Если метод onMeasure(int,int) соблюдает требования макета (заданные в виде параметров widthMeasureSpec и heightMeasureSpec, как SDK может решить, что вид должен иметь другой размер рисунка?

Кроме того, как/где в Android Source Code измеренная ширина/высота используется для вычисления ширины/высоты рисунка? Я пытался заглянуть в View source code, но не могу понять, как измеренная ширина/высота используется для вычисления окончательной ширины/высоты. Возможно, это как-то связано с padding, но я не уверен.

76
задан thecoolmacdude 4 December 2014 в 22:12
поделиться