A documentação do Android diz que existem dois tamanhos para uma vista, as dimensões medidas e as dimensões do desenho . A dimensão medida é aquela calculada na passagem de medida (o método onMeasure ), enquanto as dimensões do desenho são o tamanho real na tela. Particularmente, a documentação diz que:
Esses valores podem, mas não necessariamente, ser diferentes da largura e altura medidas.
Então, minha pergunta é: o que poderia fazer a dimensão do desenho ser diferente da dimensão medida? Se o método onMeasure (int, int) respeitar os requisitos de layout (dados como os parâmetros widthMeasureSpec e heightMeasureSpec , como o SDK pode decidir que a visualização deve ter um tamanho de desenho diferente?
Além disso, como / onde no código-fonte do Android a largura / altura medida é usada para calcular a largura / altura do desenho? Tentei examinar o código-fonte do View , mas não consigo descobrir como a MeasWidth / Height é usada para calcular a largura / altura final. Talvez tenha algo a ver com o enchimento, mas não tenho certeza.