2012-04-25 12 views
44

Ich muss die Höhe eines Bildansicht als Matchparent programmatisch einstellen.wenn es eine feste Höhe ist, weiß ich, wie zu setzen.Höhe des Bildansicht als Matchparent programmgesteuert setzen

aber wie kann ich es als Matchparent einstellen?

EDIT:

eigentlich Höhe des übergeordneten Layout ist dynamic.so i die Höhe des Imageview ist wie die Höhe des Elternteils vornehmen müssen.

+1

ich alle Methoden in der answers.but erwähnt versucht haben, ist es nicht die Höhe als Spiel Mutter Einstellung :( –

Antwort

4

initiieren LayoutParams.

die Breite und Höhe des Elternteils zuweisen und es setLayoutParams Methode der Imageview

+0

sollten Sie nie pa ss die tatsächlichen Dimensionen der Eltern. Verwenden Sie immer MATCH_PARENT anstelle von tatsächlichen Werten. Im Allgemeinen würde ich die Verwendung von absoluten Größen nicht empfehlen, da es auf allen Bildschirmen, die es gibt, völlig anders aussehen könnte. Ich würde lieber Gewichte verwenden. –

+2

Um ehrlich zu sein, sollte dies ein Kommentar sein –

146
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
+0

sollte dies die akzeptierte Antwort sein ... –

+0

In dem Moment, als ich in LayoutParams Alt + Enter drücke, sehe ich so viele Klassen. Können Sie mir bitte sagen, welche Sie verwenden sollen? – Uday

+0

Was ist die Elternansicht? – candyleung

1

Sie können die MATCH_PARENT-Konstante oder ihren numerischen Wert -1 verwenden.

+0

MATCH_PARENT ist nicht im Kontext definiert. Sie müssen 'LayoutParams.MATCH_PARENT sagen ' –

12
imageView.setLayoutParams 
    (new ViewGroup.MarginLayoutParams 
     (width, ViewGroup.LayoutParams.MATCH_PARENT)); 

Der Typ der Layoutparameter hängt von der übergeordneten Ansichtsgruppe ab. Wenn Sie den falschen Code eingeben, wird eine Ausnahme ausgelöst.

+1

Was ist "Breite"? – FlorianB

+0

Ein int in Pixel. –

+0

es funktionierte für mich –

1

Sie können dies passieren versuchen einhüllen Sie Eltern passen möchten. Die Abmessungen Anordnung ist die Breite und Höhe Inorder

web = new WebView(this); 
     web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
24
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; 
Verwandte Themen