it-swarm.com.de

Android legt Höhe und Breite der benutzerdefinierten Ansicht programmgesteuert fest

Ich habe eine benutzerdefinierte Ansicht mit dem Namen Graphview erstellt. Hier ist die Struktur für die GraphView-Klasse.

public class GraphView extends View {

    public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
        super(context);
                ........
   }

   ..................
   .................
}

Ich habe die Ansicht in einem Tablerow mit addview() hinzugefügt. Es funktioniert gut. Nun möchte ich Höhe und Breite für die GraphView einstellen. Wie geht das?

111
dev_android

Der einfachste Weg ist, die Größe programmatisch so einzustellen:

graphView.setLayoutParams(new LayoutParams(width, height));

Dies ist in Ordnung, wenn Sie die genaue Größe der Ansicht kennen. Wenn Sie jedoch einen flexibleren Ansatz wünschen, können Sie die onMeasure()-Methode überschreiben, um die Ansicht je nach verfügbarem Speicherplatz und Layoutbeschränkungen (wrap_content, match_parent oder eine feste Größe) genauer zu messen.

Ein Beispiel zum Überschreiben von onMeasure() finden Sie in den Beispielen Android docs und LabelView in Ihrem SDK-Verzeichnis.

118
Dalmas

Sie können Höhe und Breite wie folgt einstellen:

myGraphView.setLayoutParams(new LayoutParams(width, height));
205
Eric Nordvik

sie können die Höhe und Breite einer Ansicht in einem relativen Layout wie diesem festlegen 

ViewGroup.LayoutParams params = view.getLayoutParams();
params.height = 130;
view.setLayoutParams(params);
65
Rakshi
spin12.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

spin12 ist Ihr Spinner und 200 , 120 ist width und height für Ihre spinner.

4
Ujjwal

Dies ist eine auf Kotlin basierende Version, vorausgesetzt, die übergeordnete Ansicht ist eine Instanz von LinearLayout.

someView.layoutParams = LinearLayout.LayoutParams(100, 200)

Dadurch können Sie Breite und Höhe (100 und 200) in einer einzigen Zeile festlegen.

0
Morgan Wilde