Android: Ansicht hinzufügen/Layout verwalten

In diesem Thema erfahren Sie, wie Sie das Layout einer Ansicht verwalten, die zu der hinzugefügt wurde BrightcoveVideoView.

Layouts verstehen

Bevor Sie mit dem Brightcove Native SDK für Android arbeiten, sollten Sie sich mit der Verwaltung und Anpassung von Layouts in Ihrer Android-App vertraut machen.

Beginnen Sie mit der Überprüfung der Android-Entwickler-Benutzeroberfläche Handbuch.

Layoutparameter überschreiben

Die BrightcoveVideoView ist die Elternklasse der BrightcoveExoPlayerVideoView.

Wenn Sie a hinzufügen View zum BrightcoveVideoView , dann müssen Sie das überschreiben setLayoutParams() Methode auf der View Kind, nur die Layoutparameter anzuwenden, die für das View Kind.

Hier ist ein Beispiel mit dem setLayoutParams() Methode:

@Override
public void setLayoutParams(ViewGroup.LayoutParams layoutParams) {
    Log.v(TAG, "setLayoutParams: " + layoutParams);
    super.setLayoutParams(layoutParams);
    if (layoutParams != null) {
        int childCount = getChildCount();
        FrameLayout.LayoutParams frameLayoutParams =
            new FrameLayout.LayoutParams(layoutParams.width, layoutParams.height);
        frameLayoutParams.gravity = Gravity.CENTER;
        for (int i = 0; i < childCount; i++) {
            getChildAt(i).setLayoutParams(frameLayoutParams);
        }
    }
}

Dies ermöglicht die SurfaceView und der ImageView um die Layoutparameter zu erhalten, die für die BrightcoveVideoView.

Obwohl es möglich ist, die Layoutparameter nur auf die SurfaceView und ImageView Kinder, wäre es für weitere Kinder schwierig zu reagieren, wenn die BrightcoveVideoView hat seine Layout-Parameter aktualisiert.

Brightcove schlägt Überschreiben vor setLayoutParams() in dem LinearLayout Kind so, dass es durch die Breite geht, aber die Höhe und Schwerkraft unverändert lässt.

Wann eine Ansicht hinzugefügt werden sollte

Anwendungen zum Hinzufügen von a View in dem BrightcoveExoPlayerVideoView kann je nach Ziel variiert werden, um ein Objekt vor dem Player hinzuzufügen. Beispielsweise können Sie Ansichten zum Hinzufügen/Entfernen verwenden TextViews um die Bildunterschriften anzuzeigen oder ein Layout für den Controller in der App hinzuzufügen.

Die BrightcoveExoPlayerVideoView Variante erstreckt sich von der BaseVideoView das erweitert das Android FrameLayout. Dies bedeutet, dass Sie eine Ansicht zum hinzufügen können BrightcoveExoPlayerVideoView genauso wie du es machen würdest FrameLayout.

Hier ist ein Beispiel in der Datei activity_main.xml einer Android-App:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <com.brightcove.player.view.BrightcoveExoPlayerVideoView
        android:id="@+id/brightcove_video_view"
        android:layout_width="match_parent"
        android:layout_height="280dp"
        android:layout_gravity="center_horizontal|top">
        <RelativeLayout
            android:id="@+id/rl_elephant"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|bottom"
            >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=“HELLO WORLD”
                android:textColor="@color/white"
                >
        </RelativeLayout>
    </com.brightcove.player.view.BrightcoveExoPlayerVideoView>
</LinearLayout>