Skalierung eines Bildes auf maximal verfügbare Breite, halten Seitenverhältnis und Vermeidung von ImageView zusätzlichen Platz

Ich habe dieses einfache Layout XML und eine green_square.png Datei, die 30X30 Pixel ist

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:background="@color/red" android:layout_width="fill_parent" android:layout_height="fill_parent" android:adjustViewBounds="true" android:scaleType="fitStart" android:src="@drawable/green_square"/> </LinearLayout> 

Was ich versuche zu erreichen, ist das Skalieren des Bildes, um die übergeordnete Breite zu füllen, wobei es das Seitenverhältnis ohne zusätzlichen Speicherplatz der ImageView hält.

Ich habe einen roten Hintergrund zur ImageView hinzugefügt, nur als Referenz für den zusätzlichen Platz, den ich vermeiden möchte.

Hier ist mein Ziel

  • Was ist mit setScaleX / setScaleY?
  • Wie kann ich den Hintergrund eines Knopfes skalieren?
  • Wie skaliere Spritzen in libgdx nach Bildschirmauflösungen?
  • Android - Wie man einen Teil des Bildes schneidet und es in der Bildansicht zeigt
  • Canvas.scale (mScaleFactor, mScaleFactor, detector.getFocusX (), detector.getFocusY ()) ziehende Grenze messing up?
  • Kann ich eine Ansicht in Android skalieren?
  • Android ImageButton Skala und pflegen das Seitenverhältnis
  • Android zoomen und die Bildansicht drehen
  • 5 Solutions collect form web for “Skalierung eines Bildes auf maximal verfügbare Breite, halten Seitenverhältnis und Vermeidung von ImageView zusätzlichen Platz”

     <ImageView android:id="@+id/game" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" android:adjustViewBounds="true" android:src="@drawable/ic_game" /> 

    Das funktioniert für mich. Volle Breite der übergeordneten und mittleren Ernte, um das Seitenverhältnis zu halten

    Meiner Ansicht nach ist dieses ImageView Extra-Layout ein Fehler. Ich habe dasselbe passiert Infolgedessen folgte der Text, den ich dem green_square folgen wollte, dem zusätzlichen Layout. Also, was ich tat, war der Text relativ zum unteren Rand des Bildschirms. Auf diese Weise würde der Text über das zusätzliche Layout gehen. Ich gebe zu, es war nicht die beste Lösung, aber es sieht viel besser aus als mit einem riesigen Raum zwischen dem green_square und dem Text.

    Es ist so einfach. Machen Sie einfach die Breite fill_parent und height wrap_content. Hier ist das ich es herausgefunden habe.

     <ImageView android:id="@+id/game" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" android:adjustViewBounds="true" android:src="@drawable/ic_game" /> 

    Verwenden Sie Skala "fitCenter" oder "fitxy"

    Versuche dies,

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/red" android:scaleType="centerCrop" android:src="@drawable/green_square" /> </LinearLayout> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.