La documentazione di Android dice che ci sono due dimensioni per una vista, le dimensioni misurate e le dimensioni del disegno . La dimensione misurata è quella calcolata nel passaggio di misura (il metodo onMeasure ), mentre le dimensioni del disegno sono le dimensioni effettive sullo schermo. In particolare, la documentazione dice che:
Questi valori possono, ma non devono, essere diversi dalla larghezza e dall'altezza misurate.
Quindi, la mia domanda è: cosa potrebbe rendere la dimensione del disegno diversa dalla dimensione misurata? Se il metodo onMeasure (int, int) rispetta i requisiti di layout (dati come parametri widthMeasureSpec e heightMeasureSpec , come potrebbe l'SDK decidere che la vista dovrebbe avere una dimensione di disegno diversa?
Inoltre, come / dove nel codice sorgente di Android viene utilizzata la larghezza / altezza misurata per calcolare la larghezza / altezza del disegno? Ho provato a esaminare il codice sorgente della vista , ma non riesco a capire come viene utilizzata la larghezza / altezza misurata per calcolare la larghezza / altezza finale. Forse ha qualcosa a che fare con l'imbottitura, ma non ne sono sicuro.