In der Android-Dokumentation heißt es, dass es zwei Größen für eine Ansicht gibt, die gemessenen Abmessungen und die Zeichnungsabmessungen . Die gemessene Dimension ist die, in der berechneten Maßübergabe (die onMeasure Methode), während die Zeichnungsbemaßungen die tatsächliche Größe auf dem Bildschirm sind. Insbesondere heißt es in der Dokumentation:
Diese Werte können, müssen aber nicht von der gemessenen Breite und Höhe abweichen.
Meine Frage lautet also: Was könnte dazu führen, dass sich das Zeichnungsmaß von dem gemessenen Maß unterscheidet? Wenn die onMeasure (int, int) -Methode die Layoutanforderungen ( angegeben als Parameter widthMeasureSpec und heightMeasureSpec) berücksichtigt , wie kann das SDK entscheiden, dass die Ansicht eine andere Zeichnungsgröße haben soll?
Wie / wo im Android-Quellcode wird außerdem die gemessene Breite / Höhe verwendet, um die Breite / Höhe der Zeichnung zu berechnen? Ich habe versucht, in den Quellcode von View zu schauen , kann aber nicht herausfinden, wie die gemessene Breite / Höhe zur Berechnung der endgültigen Breite / Höhe verwendet wird. Vielleicht hat es etwas mit der Polsterung zu tun, aber ich bin mir nicht sicher.