Ich habe also eine Bildansicht, die ein beliebiges Bild anzeigen soll, ein Profilbild, das aus dem Internet heruntergeladen wurde. Ich möchte, dass ImageView sein Bild so skaliert, dass es in die Höhe des übergeordneten Containers passt, und eine festgelegte maximale Breite von 60dip. Wenn das Bild jedoch im Verhältnis groß ist und nicht die volle Breite von 60 dip benötigt, sollte die Breite der ImageView verringert werden, damit der Hintergrund der Ansicht genau um das Bild passt.
Ich habe es versucht,
<ImageView android:id="@+id/menu_profile_picture"
android:layout_width="wrap_content"
android:maxWidth="60dip"
android:layout_height="fill_parent"
android:layout_marginLeft="2dip"
android:padding="4dip"
android:scaleType="centerInside"
android:background="@drawable/menubar_button"
android:layout_centerVertical="true"/>
Aber das hat die ImageView aus irgendeinem Grund sehr groß gemacht. Vielleicht hat sie die intrinsische Breite des Bildes und wrap_content verwendet, um sie festzulegen. Trotzdem hat sie mein maxWidth-Attribut nicht berücksichtigt. Funktioniert das nur in einigen Containertypen? Es ist in einem LinearLayout ...
Irgendwelche Vorschläge?
Die Einstellung
adjustViewBounds
hilft nicht, wenn Sie verwendenmatch_parent
, aber die Problemumgehung ist einfach benutzerdefiniertImageView
:quelle