Wie änderst du die Größe eines ImageViews?

Ich habe mein ImageView wie folgt eingerichtet:

<ImageView android:id="@+id/dl_image" android:layout_width="60dp" android:background="@drawable/pictureframe" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:adjustViewBounds="true" android:scaleType="fitCenter"/> 

Beachten Sie, dass layout_width auf 60dp festgelegt ist. Abhängig von dem Inhalt, den ich online erworben habe, möchte ich diese Größe auf 90dp oder 120dp (unter Beibehaltung des Seitenverhältnisses des Bildes) anpassen.

Ich habe versucht, setLayoutParams zu verwenden, aber das Übergeben von LayoutParams (120, LayoutParams.WRAP_CONTENT) wirft eine Ausnahme aus. Es scheint nicht, es zu mögen

Wenn möglich, versuche ich, ein anderes ImageView für größere Größen zu vermeiden.

  • android Exit aus Vollbildmodus
  • Animation beim Ändern von LayoutParams in LinearLayout
  • WindowManager.LayoutParams Warum gibt es eine setTitle-Methode?
  • Warum 9-Patch-Grafikgröße korrekt im Emulator aber nicht auf einem Telefon?
  • Nachdem ich eine Eigenschaft auf einem LayoutParams-Objekt geändert habe, muss ich setLayoutParams erneut aufrufen?
  • Warum verwenden wir setLayoutParams?
  • Füge Layout mit Parametern programmgesteuert Android hinzu
  • Erstellen einer ListAdapter-recycleable Resizable View
  • 2 Solutions collect form web for “Wie änderst du die Größe eines ImageViews?”

    Wenn Sie mit einer bestehenden Ansicht arbeiten, kann es eine Menge Arbeit sein, die einen neuen Satz von LayoutParams von Grund auf neu erstellt. Stattdessen können Sie die vorhandenen LayoutParams der Ansicht greifen, diese bearbeiten und sie dann auf die Ansicht anwenden, um ihre LayoutParams mit setLayoutParams() zu aktualisieren.

     ImageView imageView = findViewById(R.id.dl_image); LayoutParams params = (LayoutParams) imageView.getLayoutParams(); params.width = 120; // existing height is ok as is, no need to edit it imageView.setLayoutParams(params); 

    LayoutParams Sie sicher, dass Sie die richtige Art von LayoutParams . Für diesen Fall können Sie, wie Sie kommentiert haben, einfach die LayoutParams einer ViewGroup . Wenn Sie Parameter LayoutParams , die für eine bestimmte Art von Ansicht spezifisch sind (zB Ausrichtungen in RelativeLayout s), müssten Sie die LayoutParams dieser Art von Ansicht importieren.

    Du kannst alles so machen

     ImageView imageView = findViewById(R.id.dl_image); imageView.getLayoutParams().width = 120; 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.