Kurzfassung:
clip_horizontal und clip_vertical zu den Messungen der Ansicht selbst anwenden, bevor irgendwelche Inhalte (wie beispielsweise das Bild in einem BitmapDrawable) wiedergegeben werden.
Lange Version:
Ich habe in eine ähnliche Verwirrung über clip_horizontal und clip_vertical laufen. (In meinem Fall war es verwandt mit Android: Schwerkraft für ein BitmapDrawable, aber es ist ähnlich genug, um anwendbar zu sein.)
Von der Dokumentation dachte ich, dass etwas wie Android: Schwerkraft = "top | left | clip_vertical" auf a Bitmap würde dazu führen, dass die obere linke Ecke des Bildes in der oberen linken Ecke der Ansicht positioniert wird, und dass, wenn die Bitmap größer als die Ansicht wäre, sie am unteren Rand der Ansicht "abgeschnitten" würde. Zeigen Sie mit anderen Worten nur so viel Bitmap, dass die Ansicht groß genug ist, um sie anzuzeigen. Strecken Sie die Bitmap nicht, sondern zeigen Sie nur, was passt, und lassen Sie den Rest unter die untere Kante reichen.
Das Gegenteil passierte jedoch: Wenn ich clip_vertical eingab, wurde eine große Bitmap vertikal in die Höhe der Ansicht gequetscht.
Nach dem applyDisplay Prüfung() -Methode in der Plattform/Frameworks/core/java/android/view/Gravity.java, ich meinen Fehler erkannte:
Es ist nicht das Bitmap Bild, dass zu gehen wurde abgeschnitten werden, aber die Ansicht - die tatsächliche Größe des Containers das Bild wird letztlich in gerendert.
Einstellung Clip_vertical in meinem Fall bedeutete nicht "Clip das Bild an der unteren Kante," bedeutete "Clip der BitmapDrawable der Ansicht selbst, so dass seine Höhe die Höhe des übergeordneten Containers" ... was dann das Bild verursacht "zerquetscht" werden, da es diese kürzere Höhe füllte. Schwerkraft und android:
Also, das Wichtigste ist, mit Android erinnern layout_gravity dass clip_horizontal und clip_vertical zu den Messungen der Ansicht selbst, bevor die Inhalte (wie meine BitmapDrawable) gerendert gilt.
Vielen Dank für Ihre Erklärung! Es ist, als hätte jemand in einer dunklen Ecke meines Android-Wissens ein Licht angeschaltet. Prost! – SlashG